Bonjour tout le monde,
Je viens vers vous car je tombe sur un souci avec un formulaire envoyé par AJAX.
Ma partie HTML :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <form id="monform"> <textarea name="mytext" id="mytext"></textarea> <input type="button" name="send" id="send" value="Enregistrer" /> </form>
Ma partie JS :
Voilà somme toute très basique, et pourtant je flanche dessus. :s, Je vous explique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 /** Enregistrement **/ $(".send").click(function(){ mytxt = $("#mytext"); str = "&mytxt="+mytxt.val() $.ajax({ type : 'post', url : "index.php", data : "ajax=ON&page=News&epage=e"+str, //dataType : "json", async : false, success : function(j){ $(".canceleable").click(); //window.location.reload(); } }); });
Dans ce textarea, j'insère des caractères tel que : + &
Mon problème est que le + disparaît du texte et le & coupe ma chaîne et du coup tout ce qui est après ce caractère & est considéré comme une nouvelle variable envoyée à PHP. JavaScript apparemment, en rencontrant le caractère & dans le textarea, crée une nouvelle variable envoyée avec ajax.
Exemple avec ce nom : Nigth & Day
Ma requête ajax analysée dans firebug me donne ceci :
Dans ma réception php j'ai en faite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ajax=ON&page=News&epage=e&mytxt=Nigth&Day
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $_POST['ajax'] = ON $_POST['page'] = News $_POST['epage'] = e $_POST['mytxt'] = Nigth --> Problème cela devrait être Nigth & Day $_POST['Day'] --> Elle ne devrait pas existé cette variable
Je ne sais pas si vous comprenez ce que je veux dire, je suppose un problème d'échappement. Mais je ne vois pas comment faire, je ne sais pas à l'avance ce que l'utilisateur va taper, et si cela ce trouve j'aurais aussi le problème avec d'autres caractères.
En vous remerciant d'avance de votre intervention.
Bien à vous,
Spliffer
Partager