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:

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;
 
			}
		});
En gros:
  • 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.
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);
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
	UPDATE  page 
	SET
		titre = 'Première page',
		description = 'Voila la page principale.'
	WHERE id_page = 1
Et du coup la valeur dans la base contient cette erreur d'encodage.
Comment palier à ce problème ?

D'avance merci !