IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Controle


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut [AJAX] Controle
    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!!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Sinon, ormis l'erreur, ça fonctionne ou pas ?

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut ca passe a travers donc non
    euh non ca marche pas ca passe a la page suivante. sinon rien d autre erreur

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 20
    Points
    20
    Par défaut
    Ok, essaye donc avec cette fonction alors :

    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
    <script type="text/javascript">
    <!--
    var xmlhttp=false;
    /*@cc_on @*/
    /*@if (@_jscript_version >= 5)
    try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
    xmlhttp = false;
    }
    }
    @end @*/
     
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    	xmlhttp = new XMLHttpRequest();
    }
     
    function getMyHTML(serverPage, objID) {
    	var obj = document.getElementById(objID);
    	obj.innerHTML = '<div id=loading_ajax align=center><img src="images/spinner.gif"></div>' ;
    	xmlhttp.open("GET", serverPage);
    	xmlhttp.onreadystatechange = function() 
    	{
    		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    		{
    			obj.innerHTML = xmlhttp.responseText;
    		}
    	}
    	xmlhttp.send('');
    }
    //-->
    </script>
    Pour l'appeller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<script type="text/javascript">getMyHTML(\'/module/search_engine/_disp_search_model.php?search_model='.$search_model.'\',\'ajaxcontentarea\'); </script>' ;

Discussions similaires

  1. [C#][AJAX] control server
    Par ALCINA dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/10/2007, 20h51
  2. AJAX Control Toolkit
    Par samworld dans le forum ASP.NET
    Réponses: 9
    Dernier message: 25/06/2007, 16h56
  3. Formater le calendar Ajax control Toolkit
    Par kazoumoulox dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/06/2007, 09h19
  4. Ajax Controls (Atlas) TabPanel et usercontrol
    Par chnew dans le forum ASP.NET
    Réponses: 4
    Dernier message: 06/06/2007, 10h35
  5. Ajax Control Toolkit, info ou intox?
    Par gniouf2k6 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/02/2007, 08h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo