Bonjour,
Je ne sais pas trop où poster cette question mais je la pose ici.
Note: J'utilise la bibliothèque Prototype.
Par AJAX j'effectue des échanges entre un script PHP et ma page web.
J'ai un petit formulaire avec deux champs, un input text et un textarea.
En cliquant sur Envoyer, j'appelle une fonction Javascript qui fait appel au script PHP en lui transmettant la valeurs des deux champs par POST. Voila le corps de la fonction:
En gros:
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
17
18
19
20 var id_page = document.forms['modifPage'].elements['id_page'].value; var titre = document.forms['modifPage'].elements['titre'].value; var description = $('form-modifier-description').innerHTML; // Appel du script PHP new Ajax.Request("monscript.php", { method: "post", parameters: { id_page: id_page, titre: titre, description: description }, onSuccess: function(transport) { divId = 'page_' + id_page + '_lien'; $(divId).innerHTML = titre; } });
- On récupère la valeur des champs
- On fait appel au script PHP en passant les arguments
- On affiche dans un Div le nouveau titre
Le script PHP récupère tout bien, et fait un UPDATE dans la base avec le nouveau titre et la nouvelle description pour la page donnée.
Le problème: Si j'entre "Première page" l'accent passe mal au script PHP. En gros la requête qu'il fait devient:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $sql = " UPDATE $sql_table_page SET titre = $titre, description = $description WHERE id_page = $id_page "; $resultat = mysql_query($sql);
Et du coup la valeur dans la base contient cette erreur d'encodage.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UPDATE page SET titre = 'Première page', description = 'Voila la page principale.' WHERE id_page = 1
Comment palier à ce problème ?
D'avance merci !
Partager