Bonjour,

Voila je possède un formulaire dans une page PHP, j'envoie les données de mon formulaire a une page AJAX jusque la rien de bien spécial.
A l'interieur de ma page AJAX, je recupère le nom d'une catégorie crée a l'aide de mon formulaire, puis je le "filtre" afin de supprimer tout les accents espace etc afin de remplir le champ CAT_URL de ma BDD.
Mon problème est le suivant :
Si je ne touche pas a mon code, l'insertion de mon enregistrement ne se fait pas, et si j'essai d'y inclure du utf8_encode, cela fonction mais je me retrouve avec un enregistrement dans ma base de type
cat_name = Marché
cat_url = MarchaE (truc bizarre)

Voici mon code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
function save_categorie(cat_id)
	{
	var cat_name = $('cat_name').value;
	var cat_desc = $('cat_desc').value;
	var cat_color = $('colorfield_cat').value;
	var ajax = new Ajax.Request('./admin/ajax/save_cat.php5', 
	{method: 'post',postBody: 'cat_id='+cat_d+'&cat_name='+cat_name+'&cat_desc='+cat_desc+'&cat_color='+cat_color, etc....
Voici le contenu de mon AJAX

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
21
22
23
24
 
$search  = array ('@(é|è|ê|ë|Ê|Ë)@','@(á|ã|à|â|ä|Â|Ä)@i','@(ì|í|i|i|î|ï|Î|Ï)@i','@(ú|û|ù|ü|Û|Ü)@i','@(ò|ó|õ|ô|ö|Ô|Ö)@i','@(ñ|Ñ)@i','@(ý|ÿ|Ý)@i','@(ç)@i','@( )@i','@(^a-zA-Z0-9_)@');
$replace = array ('e','a','i','u','o','n','y','c','_','');
}
if(($_POST) || ($_GET))
{//== RECUPÉRATION FORMULAIRE ==========================================//
	$cat_id = $_POST["cat_id"];
	$cat_name = $_POST["cat_name"];
	$cat_desc = $_POST["cat_desc"];
	$cat_color = $_POST["cat_color"];
	$cat_url = preg_replace($search, $replace, $cat_name);
}
 
{//== INSERTION ========================================================//
if($cat_id=="0")
	{
	$RqInsert = $mysql->query("INSERT INTO categories(cat_name, cat_description, cat_color, cat_url) VALUES('".$mysql->secure($cat_name)."', '".$mysql->secure($cat_desc)."', '#".$mysql->secure($cat_color)."', '".$mysql->secure($cat_url)."')");
	$cat_id = $mysql->lastInsertId();
	echo $cat_id;
	}
	else
	{$RqUp = $mysql->query("UPDATE categories SET cat_name='".$mysql->secure($cat_name)."', cat_description='".$mysql->secure($cat_desc)."', cat_color='#".$mysql->secure($cat_color)."', cat_url='".$mysql->secure($cat_url)."' WHERE cat_id=".$cat_id."");
	echo $cat_id;
	}
Si je n'effectue pas la ligne $cat_url = preg_replace($search, $replace, $cat_name); , l'insertion s'effectue parfaitement, sauf qu'evidemment mon champ cat_url vaut Marché au lieu de Marche....

Merci d'avance.