2016-03-19 25 views
0
formdata

Ben ajax kullanarak .ve Formdata() üzerinden veri geçirerek ancak php dosyasına i alamıyor görüntüyü kurtarmaya çalışıyorum aracılığıyla alınamadı değilveriler burada benim kodudur veri veya görüntü adı bana yardım lütfen

<form name='signup' id='signup'> 
    <div class="row"> 
     <!--<form id="uploadimage" action="" method="post" enctype="multipart/form-data">--> 
     <div id="selectImage"> 
      <label>Select Image</label> 
      <div id="image_preview"> 
       <img id="previewing" src="uploaded_files/259700.png" height="150" width="150" /> 
      </div> 
      <input type="file" name="file" id="file" required /> 
      <!--<input type="submit" value="Upload" class="submit" />--> 
     </div> 
     <!--</form>--> 
    </div> 
    <div class='row'> 
     <p> 
      <label for='username'>First name</label> 
      <input type='text' name='firstname' id='firstname' value='' placeholder='Enter First name' /> 
     </p> 
    </div> 
    <div class='row'> 
     <p> 
      <label for='lastname'>Last name</label> 
      <input type='text' name='lastname' id='lastname' value='' placeholder='Enter Last name' /> 
     </p> 
    </div> 
    <div class='row'> 
     <p> 
      <label for='email'>Email</label> 
      <input type='text' name='email' id='email' value='' placeholder='Enter Email' /> 
     </p> 
    </div> 
    <div class='row'> 
     <p> 
      <label for='phno'>Phno.</label> 
      <input type='text' name='phno' id='phno' maxlength="10" value='' placeholder='Enter ph no' /> 
     </p> 

    </div> 
    <!--<input type="hidden" name="actionfunction" value="saveData" />--> 
    <input type="hidden" name="actionfunction" value="saveData" /> 
    <div class='row'> 
     <input type='button' id='formsubmit' class='submit' value='Submit' /> 
     <!--<input type='submit' id='formsubmit' class='submit' value='Submit' />--> 
    </div> 
</form> 

burada benim ajax komut dosyası kodu:

$("#signup").on('submit', (function() { 
    var fname = $("#firstname"); 
    var lname = $("#lastname"); 
    var email = $("#email"); 
    var phno = $("#phno"); 
    if (validateform(fname, lname, email, phno)) { 
    var formdata = new FormData(this); 
    $.ajax({ 
     url: "DbManipute.php", 
     type: "POST", 
     data: formdata, 
     processdata: false, 
     cache: false, 
     contentType: false, 
     success: function(response) { 
     //alert(response); 
     if (response == 'added') { 
      $("#show_user").trigger("click"); 
      getusers(); 
      $("#msg").html("user added"); 
     } 
     }, 
    }); 
    } 
}); 

Ve işte benim "DbManipute.php" kodudur:

function saveData($data,$con){ 
    $imgfile=$_FILES['file']['name']; 
    $fname = $data['firstname']; 
    $lname = $data['lastname']; 
    $email = $data['email']; 
    $phno = $data['phno']; 
    //$fname = $_POST['firstname']; 
    //$lname = $_POST['lastname']; 
    //$email = $_POST['email']; 
    //$phno = $_POST['phno']; 
    $sql = "insert into tbl_employees(emp_name,emp_lname,emp_email,emp_phno,emp_pic) values('$fname','$lname','$email','$phno','$imgfile')"; 
    if($con->query($sql)){ 
     echo "added"; 
    } else { 
     echo "error"; 
    } 
} 

Hiçbir hata ve veri almadım. görüntü yüklemesini kaldırdığımda ve serialize yöntemini kullandıktan sonra veriler başarıyla kaydediliyor ancak serileştirme yönteminde resim dosyası adı bulamıyor lütfen bana bu konuda yardımcı olun.

cevap

0

type="file" ürününü ayrıca eklemeniz gerekir.

$("#signup").on('submit', (function() { 
    var fname = $("#firstname"); 
    var lname = $("#lastname"); 
    var email = $("#email"); 
    var phno = $("#phno"); 
    if (validateform(fname, lname, email, phno)) { 
    var formdata = new FormData(this); 
    formdata.append('file', $("input[name='file']")[0].files[0]); 
    $.ajax({ 
     url: "DbManipute.php", 
     type: "POST", 
     data: formdata, 
     processdata: false, 
     cache: false, 
     contentType: false, 
     success: function(response) { 
     //alert(response); 
     if (response == 'added') { 
      $("#show_user").trigger("click"); 
      getusers(); 
      $("#msg").html("user added"); 
     } 
     }, 
    }); 
    } 
}); 
+0

Öneriniz doğrultusunda satır ekledim. Ancak yine de veriler alınamıyor. – suh

+0

@suh try '$ .trim (response) == 'koşulda eklendi. – RRK

+0

Önerileriniz için teşekkürler, ancak hala çalışmıyor. – suh

0

İstemcinizle ilgili yanlışlık, sayfada yalnızca php gibi görünmeyecektir. Javascript kodunuzda bazı hatalar var. Js kodunun sonunda kapanış parantezini kaçırdınız: });

Krom veya firefox tarayıcı kullanıyorsanız, F12 düğmesine basın ve konsol gösterilir ve js hatalarınızı gösterir. İpucu: Kodunuzdaki değişkenleri yazdırarak projenizde hata ayıklayabilirsiniz. Örneğin ajax komutunuzun çalışıp çalışmadığını kontrol etmek için js kodunuzda console.log('test'); kullanmayı deneyin. console.log() tarayıcıda konsol kutusunda yazdıracaktır.

Bunu kodunuzda yaptığınızda, kodunuzun hiç çalışmadığını anladım. Kodunuzu üzerinde göndermeniz ve düğmenizden herhangi birine göndermediğiniz için ayarlayın. Ardından düğmenizin type="submit" şeklini değiştirmeniz gerekir. Bundan sonra, formu tarayıcıyı kullanarak göndererek ve js kodunuzu çalıştırmak istediğiniz tarayıcıya söyleyerek formu engellemeniz gerekir.

$("#signup").on('submit', (function(evt) { 
    evt.preventDefault(); 

başka ipucu kodu php asla denir bir işlevde olmasıdır: Bunun için böyle olayı form gönderme için varsayılan eylemi önlemek için gereken gerekir. php işlevinizi php dosyanızda çağırmanız veya kodlarınızı işlev dışı bırakmanız gerekir.

Kodunuzu bu şekilde değiştirmeyi deneyin. Bu kodunuzu çalışmalı. Ve ajax isteğinizin çalışıp çalışmadığını kontrol etmek için kodunuzda bir şeyi yankılamaya çalışın ve js kodunuzda cevabı uyarın. dikkate almak

Düzenleme 1. bir şey daha ajax kullanarak dosya yüklemek istediğiniz durumlar için, size FormData(this) gibi verileri ayarlanmamış olmasıdır. Ajax yükleme amacı için, FormData (new FormData()) nesnesini oluşturmalı ve verileri ayrı ayrı eklemelisiniz. (Rejith R Krishnan'ın dediği gibi).