AJAX et PHP, problème accents [Résolu]

Signaler
-
 Utilisateur anonyme -
Bonjour,

J'ai lu plusieurs sujets sur ce point, mais rien qui ne m'aide.

J'ai un textarea où la personne modifie un texte.

Ensuite, via une fonction, j'enregistre ses données dans ma base de données. L'enregistrement fonctionne, mais quand il y a des accents dans le texte, ça ne fonctionne plus trop.

MON JS
menu = $('#texte_'+id).val();
								
$.ajax({
	type: "GET",
	url: "index.php?page=administration&souspage=menu&menus=modifier",
	data:'id='+id+'&menu='+menu,
	success: function(data)
	{
		$("#alertM_"+id).html('<br>Menu correctement modifié.')
		setTimeout(function(){$("#alertM_"+id).fadeIn('normal');}, 1000);
		setTimeout(function(){$("#alertM_"+id).fadeOut('normal');}, 3000);
	}
});


Un petit Console.log de menu donne bien :

<p>Buffet des entrées</p> <p>Couscous</p> <p>Buffet des desserts</p>

mais un Echo dans ma partie PHP (qui récupère les données d'AJAX) donne <p>Buffet des entr.

MON PHP
$id = $_GET['id'];
$menu = (stripslashes($_GET['menu']));
echo $menu;
Menu::modifierMenu ($id, $menu);


Merci d'avance :)

2 réponses

Messages postés
30487
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 décembre 2020
338
Bonjour,
c'est un souci d'encodage.
Essaye d'ajouter un Utf8_decode dans ta page PHP lors de la récupération de tes variables.

un truc du genre :
$id = isset($_GET['id'])?$_GET['id']:'';
$menu = isset($_GET['menu'])?stripslashes(utf8_decode($_GET['menu'])):'';
echo $menu;


Yes merci jordane45 ;) Au moment où je vois ton commentaire, j'allais justement mettre le sujet en résolu car c'est ce que je viens de tester ;)

Côté JS : menu = encodeURIComponent(menu);

Côté PHP : $menu = utf8_encode(stripslashes($_GET['menu']));

Merci :D