2016-03-30 17 views
0

Daha önce kayıt kodumdan bahsettim. Şimdi görüntü adını veritabanına kaydetmek istiyorum. Görüntü, dosya yükleme kullanılarak yüklenecek. Doğrulama jquery kullanılarak yapılır ve form ajax kullanılarak gönderilmelidir. Şimdi dosya yüklemelerinin ajax kullanılarak gerçekleştirilemediğini okudum.Ve bu benim kodumdaki sorun. Resim adı, dosya yükleme yöntemini kullanarak veritabanına eklemek

ardından

benim kodudur:

<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js">  </script> 
<script src="http://malsup.github.com/jquery.form.js"></script> 
<script> 
function ValidateEmail(email) { 
    var expr = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)| (([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; 
    return expr.test(email); 
}; 



$(document).ready(function(){ 

$('#submit').on('click', function() { 
//e.preventDefault(); 

    valid = true; 
    if ($('#name').val() == '') { 
     alert ("please enter your name"); 
     //$('#errorMsg1').css('color','red'); 
     //$('#errorMsg1').html('Please enter your name'); 
     //document.getElementById("errorMsg1").innerHTML = "You must enter a  name"; 

     valid = false; 
    } 

    if ($('#email').val() == '') { 
     alert ("please enter your email"); 
     //$('#errorMsg2').css('color','red'); 
     //$('#errorMsg2').html('Please enter your emailid'); 
     //document.getElementById("errorMsg2").innerHTML = "You must enter a email"; 
     valid = false; 
    } 
    if (!ValidateEmail($("#email").val())) { 
     alert("Invalid email address."); 
     //document.getElementById("errorMsg2").innerHTML = "Invalid email address."; 
    } 

if ($('#bday').val() == '') { 
     alert ("please enter your birth date"); 
     //$('#errorMsg3').css('color','red'); 
     //$('#errorMsg3').html('Please enter your birth date'); 
     //document.getElementById("errorMsg3").innerHTML = "You must enter your birth-date"; 
     valid = false; 
    } 
if ($('#gender').val() == '') { 
     alert ("please select your gender"); 
     //$('#errorMsg4').css('color','red'); 
     //$('#errorMsg4').html('Please select your gender'); 
     //document.getElementById("errorMsg4").innerHTML = "You must select your gender"; 


     valid = false; 
    } 
if ($('#image').val() == '') { 
     alert ("please select an image"); 
     //$('#errorMsg5').css('color','red'); 
     //$('#errorMsg5').html('Please select an image'); 
     //document.getElementById("errorMsg5").innerHTML = "You must select an image"; 


     valid = false; 
    } 
}); 
return false; 



$("#multiform").submit(function (e) 
{ 

var formObj=$(this); 
var formURL=formObj.attr("action"); 
var formData=new formData(this); 
$ajax({ 
URL:formURL, 
type:'POST', 
data:formData, 
mimeType:"multipart/form-data", 
contentType:false, 
cache:false, 
processData:false, 
success:function(data,textStatus,jqXHR){ 
}, 
error:function(jqXHR,textStatus,errorThrown){ 
} 


}); 
    e.preventDefault(); 
e.unbind(); 
} 



); 
return true; 
$("#multiform").submit(); 

}); 
</script> 


</head> 
<body> 
<form name="multiform" id="multiform" action="save_data.php" method="POST" enctype="multipart/form-data"> 
<h4>Name:</h4> <input type="text" name="name" id="name" autofocus> 
<br><br> 
<h4>E-mail:</h4> <input type="text" name="email" id="email" autofocus> 
<br><br> 
<h4>Birth-date:</h4> <input type="text" name="bday" id="bday" autofocus> 
<br><br> 
    <h4>Gender:</h4> 
<input type="radio" name="gender" id="gender" value="female" autofocus>Female 
    <input type="radio" name="gender" id="gender" value="male" autofocus>Male 
     <br><br> 
    Select Image:<input type="file" name="image" id="image"><br><br> 

<input type="submit" id="submit" name="submit" value="Submit"> 






</form> 




</body> 
</html> 

save_data.php:

<!DOCTYPE html> 
<html> 
<body> 

<?php 
error_reporting(E_ALL & ~E_NOTICE); 
// define variables and set to empty values 
$name = $email = $bday = $gender = $image=""; 

//$image=$_FILES["image"]["name"]; 



if(isset($_POST['submit'])){ 
$name = $_POST["name"]; 
$email = $_POST["email"]; 
$bday=$_POST["bday"]; 
$gender = $_POST["gender"]; 
$image =$_POST["image"]; 



$servername = "localhost"; 
$username = "mvs1"; 
$password = ""; 
$dbname="scootsy_categories"; 



$conn = new mysqli($servername, $username, $password,$dbname); 

// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
//echo "Connected successfully"; 

$sql = "INSERT INTO user_details(name,email,bday,gender,image) VALUES ('$name','$email','$bday','$gender','$image')"; 
if ($conn->query($sql) === TRUE) { 
    // echo "New record created successfully"; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 
//if($name !="" || $email !="" || $bday !="" || $gender !="" || $image !="" ) 
//{ 
// $sql="DELETE FROM user_details where name='$name' || email='$email' || bday='$bday' || gender='$gender' || image='$image'"; 
//} 







$conn->close(); 



} 
echo "Successful"; 
?> 
</body> 

</html> 
+0

kodundaki tüm yorum yok saymak, i maddeleri çeşitli yapmaya çalışıyorlar ve Bazıları işe yaramadı, bu yüzden onları yorumlar olarak tuttum –

+0

Tüm "yararsız" kodunu kaldırmaya çalışın. [Mcve] 'yi kontrol edin. Kimse bunları kaydıramaz ve analiz edemez. Şu anki haliyle, alacağınız tek şey, soruları kapatmak için iniş notları ve bayraklardır. –

cevap

0

Bir veritabanına görüntüleri kaydedemezsiniz, ancak yol url kaydedebilir ve görüntüyü kaydetmeden önce php ile bir klasöre. Bunun için ajax kodunuzu ve php dosyanızı değiştirmelisiniz çünkü tüm bunları yapmak için bir dosyaya taşımak için ad, tip, boyut ve temp_folder ayıklamak için $ _FILES kullanmamız gerekiyor.

  1. Ajax kodunuzu yeniden yazınız.
  2. $ ile alın dosyanın özelliklerini _files

    <script type="text/javascript"> 
        $('body').on('click','#submit', function() { 
         $.ajax({ 
          type:'POST', 
          url:'save_data.php', 
          data: new FormData($('#your_id_form')[0]), 
          contentType:false, 
          cache:false, 
          processData:false, 
          success:function(upload) { 
           $('#multiform').html(upload): 
          } 
         });   
        }); 
    </script> 
    
    <form id="your_id_form" method="POST" action="save_data.php"> 
        <input type="name" placeholder="Your name"> 
        <input type="file" name="file"> 
        <input type="button" id="submit"> 
    </form> 
    <div id="multiform"></div> 
    
    //save_data.php $name = $_POST['name']; $file_name = $_FILES['file']; $file_size = $file_name['size']; $file_type = $file_name['type']; $file_tmp = $file_name['tmp_name']; list($name,$type) = explode('/',$file_type); $save_temp = $file_tmp; //create a new folder named images into your root page $new_path = 'images/'.$name.$type; //we move the file from the temporal folder to a new folder move_uploaded_file($save_temp, $new_path); $file_url = 'images/'.$file_type; $sql = "INSERT INTO database (name,file_url) VALUES ('$name', '$new_path')"; //do stuffs for connect your query to your database echo 'Uploaded!'; ?>
İlgili konular