Bonjour bonjour
Un petit probleme de controle:
Voila, j ai un lien pour aller sur une page php.
Celle ci ne doit etre accessible que si une certaine table mysql est remplis.
Vous allez me dire, tu n a qu a le faire en php ca ira plus vite mais non le probleme c'est que je dois avoir le lien en visible.J ai pensais a une alert qui s'affiche en disant un truc du genre " on ne passe pas"
Pour ce faire, je fais de l'ajax.
Lorsque l'utilisateur clique sur le lien je lance une fonction qui va chercher une valeur dans un xml qui est rempli grace a la table php.
c'est bon vous suivez?
Et si cet valeur est > 0 alors on passe sinon on passe pas.
Voila le code:
le xml:
la fonction qui va apelle le xml avec un parametre pour la requete:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 header('Content-Type: text/xml'); echo "<?xml version=\"1.0\" encoding='ISO-8859-1'?>\n"; if(isset($_GET['info'])) { echo "<exemple>\n"; $idpers=$_GET['info']; $req='select * from pgh_format where id_pgh='.$idpers; $res=mysql_query($req); $num=mysql_num_rows($res); echo '<nombre nbr="'.$num.'" />'; echo "</exemple>\n"; }
et puis la fonction permettant faire passe ou de bloquer l'utilisateur:
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 function ajoutformat(num) { toto=num; var url ="formatexistant.php?info="+toto; if (window.XMLHttpRequest) { requete = new XMLHttpRequest(); } else { if (window.ActiveXObject) { requete = new ActiveXObject("Microsoft.XMLHTTP"); } } requete.open("GET",url,true); requete.onreadystatechange=ajoutformatage; requete.send(null); }
Apres moulte test, j ai trouver d'ou viens le probleme, mais pour le regler....
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 function ajoutformatage() { if (requete.readyState == 4) { if (requete.status==200) { // exploitation des données de la réponse var noeud = requete.responseXML.getElementsByTagName("nombre"); e = noeud.item(0); nombre=e.getAttribute("nbr"); if(nombre==0) { alert('Impossible pour le moment, vous devez enregistré des formats et vos tarifs associés !!'); return false; } else { return true; } } else { alert(requete.status+'code'); } } }
je sais po
Voila l'erreur renvoyer par js :
Pourquoi le if (requete.status==200) marche pas??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Erreur : [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/apmodif/javascript/fonctions.js :: ajoutformatage :: line 1833" data: no] Fichier source : http://localhost/apmodif/javascript/fonctions.js Ligne : 1833
MErci d'avance pour vos (nombreuses?) reponses
tiger63
Ke le tigre soit en toi!!
Partager