AJAX et PHP, problème accents

Résolu
Utilisateur anonyme - 4 juin 2014 à 09:52
 Utilisateur anonyme - 4 juin 2014 à 11:01
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

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
4 juin 2014 à 10:24
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;

0
Utilisateur anonyme
4 juin 2014 à 11:01
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
0
Rejoignez-nous