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
Voici le contenu de mon AJAXCode:
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....
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....Code:
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; }
Merci d'avance.