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:
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"; 
}
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
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);
 
}
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
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');
			}
	}
}
Apres moulte test, j ai trouver d'ou viens le probleme, mais pour le regler....
je sais po
Voila l'erreur renvoyer par js :
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
Pourquoi le if (requete.status==200) marche pas??

MErci d'avance pour vos (nombreuses?) reponses

tiger63
Ke le tigre soit en toi!!