i miei dati non salvano nel database usando ajax

questo è javacript e ajax non so quale sia l’errore ho provato questo senza ajax è funzionante ma con ajax non funziona.

   $(function() { $(".submit").click(function() { var name = $("#User_Name").val(); var email = $("#User_Email").val(); var mobno = $("#User_Email").val(); var landlineno = $("#user_MobileNo").val(); var proprTd = $("#propertyids").val(); var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd; if(name=='' || email=='' || mobno=='' || landlineno=='') { $('.success').fadeOut(200).hide(); $('.error').fadeOut(200).show(); } else { $.ajax({ type: "POST", url: "SaveContactDetails.php", data: dataString, success: function(){ $('.success').fadeIn(200).show(); $('.error').fadeOut(200).hide(); } }); } return false; }); });  

questo è il codice html non so qual è l’errore ho provato questo senza ajax è funzionante ma con ajax non funziona.

 
<input type="hidden" name="propertyid" id="propertyids" value="" > Individual Agent Builder
  • :
  • e questo è il file php

      

    Manca & nella stringa di dati:

     var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd; 

    Deve essere:

     var dataString = 'User_Name='+ name + '&User_Email=' + email + '&User_Email=' + mobno + '&user_MobileNo=' + landlineno + '&propertyids=' + proprTd; 

    Ecco perché non invia i dati corretti, come vuoi tu. Certo, puoi serializzare tutti i tuoi dati …

    Inoltre dovresti usare encodeURIComponent perché se l’utente aggiunge un & o =, la tua stringa si spezzerà.

     var dataString = 'User_Name='+ name + 'User_Email=' + email + 'User_Email=' + mobno + 'user_MobileNo=' + landlineno + 'propertyids=' + proprTd; 

    Non è così che costruisci una querystring

    La stringa appare come User_Name=nameUser_Email=email.... , ti manca il & tra ciascuno. Inoltre dovresti usare encodeURIComponent perché se l’utente aggiunge un & o =, la tua stringa si spezzerà.

    Guarda jQuery serialize() lo fa tutto per te.

    O semplicemente usa la funzione serialize , stai comunque usando jQuery.

     $( "form" ).on( "submit", function( event ) { event.preventDefault(); var formData = $( this ).serialize(); $.ajax({ type: "POST", url: "SaveContactDetails.php", data: formData, success: function(){ $('.success').fadeIn(200).show(); $('.error').fadeOut(200).hide(); } }); }); 

    Prima di inviare ajax puoi sempre aggiungere la tua convalida.

    Puoi usare questo