Salut à tous !
Je m'explique, j'ai une liste générée dynamiquement qui affiche des données contenues dans ma BD (local).
Cette liste s'affiche grâce une fonction JS.
Sur cette liste j'ai un bouton "supprimer" qui me permet de supprimer un champ de ma table et donc une ligne de ma liste.
Le problème intervient quand je clique sur ce bouton. Le comportement normal devrait être la suppression de l'item, régénération de la liste et affichage d'un message de confirmation juste au dessus de la liste.
Le problème que j'ai identifié vient du deuxième POST, celui contenant le fichier XML qui va me permettre de régénérer la liste et confirmer ma suppression.
Lors du premier POST, l'entête du fichier XML est composée de 13 lignes vides mais il n'y a pas d'erreur car le fichier XML contient uniquement de l'HTML.
Mais lors du second POST, celui permettant de confirmer la suppression et régénérer la liste, il y une erreur due à cette longue entête vide et j'obtiens ceci :
Erreur d'analyse XML : instruction de traitement XML ou texte pas au début d'une entité externe
En tout cas, je précise que TOUT fonctionne et se comporte NORMALEMENT sur la preprod qui est sur un serveur OVH ET en local sur le mac de mon collègue mais pas sur mon pc.
Je précise, je ne vais pas acheter de mac ! lol
Ce problème en tout cas est bien du a mon pc et non a la fonction... Mais j'aimerai bien pouvoir développer sur mon poste !
Voici en tout cas mes trois fichiers :
lengow.js
catalog_lengow.php
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 /***************************************/ /* Chargement de la liste des fonctions en fonction des paramètres de recherche et de filtrage : OK /***************************************/ function list(start,page,filter,id) { $('#data_content_message').html(""); $.post("inc/lengow.inc.php", {show: "1",action: "list",start:""+start+"",page:""+page+"",filter:""+filter+"",id:""+id}, function(data) { if(data.length>0) { $('#data_content_list').html(data); } }); } /***************************************/ /* Supression filtre type: /***************************************/ function action_suppr(id,action,item,start,page,filter) { var mess="Etes-vous sûr de vouloir supprimer"; if(confirm(mess+" le filtre : "+item+" ?")) { $("div#data_content_dialog").removeClass("textgreen"); $("div#data_content_dialog").removeClass("textred"); $.ajax({ type: "POST", url: "inc/lengow.inc.php", data: "show=1&lgw_id="+id+"&action="+action+"&item="+item, dataType:"xml", success: function(xml){ $(xml).find('informations').each(function(){ var status = $(this).attr('status'); var message = $(this).attr('message'); var messageerror = $(this).attr('messageerror'); if(status==1) { $("div#data_content_dialog").addClass("textgreen"); list(start,page,filter,promo,id); } else { $("div#data_content_dialog").addClass("textred"); } setTimeout("$('div#data_content_dialog').show('fast');", 0); $("div#data_content_dialog").html(message); setTimeout("$('div#data_content_dialog').hide('fast');", 7000); }); } }); } }
lengow.inc.php
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 // Pour les imports de javascript et de css spécifiques a certaines page $importJSCSS.=" <script type=\"text/javascript\" src=\"js/formValidation.js\"></script> <script type=\"text/javascript\" src=\"js/catalog/lengow.js\"></script> <script type=\"text/javascript\"> $(document).ready(function() { list('','','',''); }); </script> "; include_once("inc/restrictAreaUserIN.inc.php"); if($accesGaranted==1) { $content .="<div id=\"zoneGlobalOrderTodayRight\"> <div id=\"zoneGlobalMessageOrderTodayRight\"> </div> <div id=\"zoneGlobalHautOrderTodayRight\"> Module d'export Lengow <div id=\"zoneGlobalLoadOrderTodayRight\"> </div> </div> <div id=\"zoneGlobalMilieuOrderTodayRight\"> <form name=\"form_search\" id=\"form_search\"> <fieldset> <legend>Choisir la valeur Delta (valeur min. stock)</legend> <label id=\"form_delta\">Delta</label> : <input type=\"text\" value=\"\" id=\"form_delta\" name=\"form_delta\" title=\"\"/> </fieldset> </form> <br/> <br/> <label id=\"form_type\">Type</label> : <input type=\"text\" value=\"\" id=\"form_type\" name=\"form_type\" title=\"\"/> <div id=\"data_content_dialog\" class=\"txtbold\"></div> <div id=\"data_content_list\"></div> </div> <div id=\"zoneGlobalBasOrderTodayRight\"> </div> </div>"; } else { $content.="NO ACCESS"; }
J'utilise jQuery pour l'Ajax comme vous aurez pu le remarquer.
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
25
26
27
28
29
30
31
32
33
34 else if(isset($_POST["action"]) && $_POST["action"]=="suppr") { try { $req="DELETE FROM at8_lengow WHERE lgw_id='".$_POST["lgw_id"]."'"; if(mysql_query($req)) { $message.="Suppression du filtre à bien été effectuée"; } else { $ok=0; throw new Exception("ERROR SUPPR : ".$req.""); } header('Content-Type: text/xml'); $resultat_xml = '<?xml version="1.0" encoding="UTF-8"?>'; $resultat_xml .= '<returnRequest>'; $resultat_xml .= '<informations status="'.$ok.'" message="'.$message.'" messageerror="'.$messageError.'"/>'; $resultat_xml .= '<vars/>'; $resultat_xml .= '</returnRequest>'; echo $resultat_xml; } catch(Exception $e) { header('Content-Type: text/xml'); $resultat_xml = '<?xml version="1.0" encoding="UTF-8"?>'; $resultat_xml .= '<returnRequest>'; $resultat_xml .= '<informations status="0" message="Problème lors de la suppression du filtre" messageerror="'.str_replace("<br/>","",str_replace("\n","",$e->getMessage())).'"/>'; $resultat_xml .= '<vars />'; $resultat_xml .= '</returnRequest>'; echo $resultat_xml; } }
Je précise ma configuration locale :
- Windows 7 64bits
- wamp
- PHP 5.3.0
- Editeur texte notepad++
Merci d'avance pour votre aide.
Partager