Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérification d'utilisation

    22 juillet 2010 à 13:49:57

    Bonjour à tous,
    je suis entrain de créer la page de news pour mon site et je voulais vérifier grâce à du javascript plus précisément du ajax si le titre que les visiteurs allaient entrer dans le champ n'était pas déjà dans la base de données.

    Voici mon script ajax:

    <script type="text/javascript">
    
    function writediv(texte)
    {
    document.getElementById('pseudobox').innerHTML = texte;
    }
    
    function file(fichier)
    {
    if(window.XMLHttpRequest) // FIREFOX
    {
    xhr_object = new XMLHttpRequest();
    }
    else if(window.ActiveXObject) // IE
    {
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
    return(false);
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    }
    if(xhr_object.readyState == 4)
    {
     return(xhr_object.responseText);
     }
    else 
    {
    return(false);
    }
    }
    
    function veriftitre(titre)
    {
    if(titre.length==0)
    {
    writediv(' <img style="position:absolute;left:205px;top:3000px;" src="pictures/caution.png" alt="fond " /><div style="color:#cc0000;position:absolute;left:230px;top:3000px;width:170px;">Ce titre est trop court !</div>');
    }
    else if(texte = file('http://www.lesitedubinaire.webege.com/registor/news/veriftitre.php?titre='+escape(titre)))
    {
    if(texte == 1)
    {
    writediv(' <img style="position:absolute;left:205px;top:3000px;" src="http://lesitedubinaire.webege.com/pictures/croix.png" alt="fond " /><div style="color:#cc0000;position:absolute;left:230px;top:3000px;width:170px;">Ce titre est déja pris !</div>');
    }
    else if(texte == 2)
    {
    writediv(' <img style="position:absolute;left:205px;top:3000px;" src="http://lesitedubinaire.webege.com/pictures/vrai.png" alt="fond " /><div style="color:#cc0000;position:absolute;left:230px;top:3000px;width:170px;">Ce titre est libre !</div>');
    }
    else
    {
    writediv(texte);
    }
    }
    }
    


    Voici le script php:

    <div class="titre">
    Titre:
     <input type="text" name="titre" onKeyUp="veriftitre(this.value)" style=" color: blue; border-width:2px; font-size:10pt"  />
     
    </div>
    


    Et enfin la page Veriftitre.php:


    <?php
    
    // CONNECION SQL
    include("connexionBDD.php");
    
    // VERIFICATION DU LOGGIN
    $pris=1;
    $result = mysql_query("SELECT titre FROM news WHERE titre ='".$_GET["titre"]."'");
    if($result==$pris)
    {
    echo "1";
    }
    
    else
    {
    echo "2";
    }
    
    
    
    ?>
    


    Le soucis c'est que lorsque j'entre une lettre dans mon champ, on voit que sa cherche, mais rien ne s'affiche.

    Je crois avoir localiser le problème, mais je n'arrive pas à le résoudre.
    Je pense que sa vient de sa:

    if(xhr_object.readyState == 4)
    {
    return(xhr_object.responseText);
    }
    else
    {
    return(false);
    }

    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      22 juillet 2010 à 13:57:29

      Edit : j'avais mal vu la déclaration de texte dans le else if :euh:

      Par contre juste un conseil, dans les balises <code> change php par javascript, ce sera plus lisible ;)
      • Partager sur Facebook
      • Partager sur Twitter
        22 juillet 2010 à 14:02:05

        Sa change rien, mais je viens de vérifier avec des alert();.
        Je crois que xhr_object.readyState n'est pas égal à 4.
        Mais comment le mettre?
        • Partager sur Facebook
        • Partager sur Twitter
          22 juillet 2010 à 14:06:31

          Tu as un souci dans Veriftitre.php, tu devrais plutot faire :

          <?php
          $result = mysql_query("SELECT COUNT(*) AS total FROM news WHERE titre ='".$_GET["titre"]."'");
          $data = mysql_fetch_array($result);
          $compteur = $data['total'];
          if($compteur==$pris){
          
          ...
          


          Sinon je te renvoie sur cette page pour les codes de readyState : http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_5

          Edit : Il te manque des choses dans ton appel ajax :

          pourquoi cette partie est dans le else :

          else
          {
          return(false);
          xhr_object.open("GET", fichier, false);
          xhr_object.send(null);
          }


          c'est elle qui réalise l'appel au fichier, donc il ne sera jamais réalisé dans ton cas.
          • Partager sur Facebook
          • Partager sur Twitter
            22 juillet 2010 à 14:09:18

            Mais comment insérer sa à mon script:

            var xhr = getXMLHttpRequest();
            
            xhr.onreadystatechange = function() {
            	if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
            		alert("OK"); // C'est bon \o/
            	}
            };
            
            xhr.open("GET", "handlingData.php", true);
            xhr.send(null);
            
            • Partager sur Facebook
            • Partager sur Twitter
              22 juillet 2010 à 14:13:57

              Le mieux, je te conseille de repartir pour ton xhr avec ce tutoriel : http://siddh.developpez.com/articles/ajax/

              Parce que la ca prendra beaucoup de temps a tout rebricoler. Vaut mieux que tu repartes sur des bases propres :)
              • Partager sur Facebook
              • Partager sur Twitter
                22 juillet 2010 à 14:15:19

                Merci pour ton conseil, je commence maintenant. :p
                • Partager sur Facebook
                • Partager sur Twitter

                Vérification d'utilisation

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown