2009-10-25 5 views
0

i cette forme:jQuery guillemets doubles

<form name="myForm" action="#"> 
    <input type="text" name="firstField" /> 
    <input type="text" name="secondField" /> 
    <input type="submit" name="submitButton" /> 
</form> 

et j'ai une demande ajax:

$('input[type="submit"]').click(function(){ 
     var serialized = $('form').serialize(); 
     //ajax request 
     $.ajax({ 
       type : "POST", 
       url : "takeAction.php", 
       data : serialized, 
       succes : function(){ 
        alert('done'); 
       } 
     }); 
}); 

le problème est que si l'un de ma valeur de champs contient "'", comme (qui est le patron) ma requête ajax ne se termine pas (j'essaye de mettre à jour une ligne mysql mais le code échoue, je n'obtiens aucune erreur juste que ma ligne n'est pas mise à jour). Je sais que c'est quelque chose à propos des citations mais je ne sais pas comment le faire. merci

Répondre

4

Le problème est dans votre code PHP sur le serveur, pas dans votre code HTML ou JavaScript.

Vous écrivez probablement les valeurs de données soumises directement dans une requête SQL, oui ?:

$query = sprintf("SELECT * FROM users WHERE user='%s'", $user); 

Vous devez soit utiliser prepared statements, ou utilisez mysql_real_escape_string() pour échapper à vos valeurs:

$query = sprintf("SELECT * FROM users WHERE user='%s'", 
        mysql_real_escape_string($user)); 
+0

et si j'ai $ var1 = $ _POST ['firstField'] $ var2 = $ _POST ['secondField'] $ rowId = $ _POST ['id'] et je veux mettre à jour ma rangée comment mon code devrait-il ressembler? quelque chose comme ça? $ sql = sprintf ("Mettre à jour la table SET mysqlField_1 = '% s', mysqlField_2 = '% s' où id = '% s'", $ var1, $ var2, $ rowId); – kmunky

+0

désolé .. comme ça? $ sql = sprintf ("Mettre à jour la table SET mysqlField_1 = '% s', mysqlField_2 = '% s' où id = '% s'", mysql_real_escape_string ($ var1, $ var2, $ rowId)); – kmunky

+0

l'a, $ sql = sprintf ("METTRE la table SET mysqlField_1 = '% s', mysqlField_2 = '% s' où id = '% s'", mysql_real_escape_string ($ var1), mysql_real_escape_string ($ var2), mysql_real_escape_string ($ rowId)) ;, MERCI;) – kmunky

Questions connexes