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
32935
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
10 juin 2021
351
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