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] XmlHttpRequest en Ajax


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par d�faut [AJAX] XmlHttpRequest en Ajax
    bonjour,

    Je suis d�butant en AJAX et j'ai besoin de votre aide, voila mon probleme:

    Je voudrai avec AJAX recuperer le resultat d'une requete en MySQL qui se trouve dans un fichier php en lui passant un parametre. Voila le fichier PHP:
    function create_response($level_id) {
    mysql_connect('localhost', 'root', '');
    mysql_select_db('thesaurus');

    $sql = "SELECT `ConceptName`
    FROM `concept`
    WHERE `ConceptName` LIKE '".$level_id."%' AND ThesaurusID=".'1'." LIMIT 10";
    $req = mysql_query($sql);
    $autoCompletion = mysql_fetch_assoc($req);
    }

    Dans un script Javascript je veux faire du Ajax (je sais pas comment) pour recuperer le resultat de la requete precedente et mettre ce resultat dans un champ texte dans ma page.
    Je sais qu'il faut utiliser XmlHttpRequest mais aucune id�e comment puisque je suis debutant. J'apprecie bien votre aide et desole si je vous embete.
    Merci en avance

  2. #2
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    D�tails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Par d�faut
    slt,

    si tu as plusieurs r�sultat comment vas-tu g�r� la chose ??

    � partir de l� je pourrai te guider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par d�faut
    Slt jeje13009,

    En fait j'ai cette fonction en Javascript:
    function checkword()
    {
    var s=$('keys').value;
    var start='';
    if((s=='')||(s.lastIndexOf(' ')==s.length-1))
    {
    $('skeys').innerHTML='';
    return;
    }
    if(s.lastIndexOf(' ')!=-1)
    start=s.substring(s.lastIndexOf(' ')+1);
    else
    start=s;
    if(keys.length<1)
    {
    if($('allkeys')!=null)
    {
    var someNodeList = $('allkeys').getElementsByTagName('a');

    var nodes = $A(someNodeList);
    var i=0;
    nodes.each(function(node){
    keys[i]=node.innerHTML;
    i++;
    });
    }
    }
    if(start.length>0)
    {
    var s2="";
    var i=0;
    var max=15;
    keys.each(function(node){
    if((node.length>start.length)&&(i<max)&&(node.substring(0,start.length)==start))
    {

    s2+="<a href='javascript:void(0)' onclick='AddKey3(\""+node+"\",\""+node.substring(start.length)+"\")'>"+node+"</a> ";
    i++;
    }
    });
    $('skeys').innerHTML=s2;
    }
    }

    Au lieu de: var someNodeList = $('allkeys').getElementsByTagName('a'); qui recupere des mots cles d'un champ texte, je voudrai recuperer des mots cles de ma base, voila quoi. Pour cela je dois faire du XmlHttpRequest et recuperer le resultat de la requete. J'espere que c'est plus clair.
    Si t'en as des scripts, des id�es ... je suis preneur... Ca fait deux jours que je m'arrache les cheveux puisque je veux modifier le code d'un mec qui n'est pas comment�

    Merci d'avance

  4. #4
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    D�tails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Par d�faut
    slt,

    premiers �l�ments de r�ponse...

    soit un fichier js :
    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
    function ObjXHR(){ //définition de la classe
    	try{ return new ActiveXObject("Microsoft.XMLHTTP");}
    	catch(e){
    		try{ return new ActiveXObject("Msxml2.XMLHTTP");}
    		catch(e){
    			try{ return new XMLHttpRequest();}
    			catch(e){ return false;}
    			}
    		}
    	}
     
    function RecupKeywordInBdd(){
    var xhr= false;
    var xhr= new Requete();
     
    requete.onreadystatechange = function(){
         if(requete.readyState == 4){
              if(requete.status == 200){
                   tabReponse = xhr.responseText.split("+");
                   //remplace '+' par le caractère de ton choix
                   //un caractère que tu es sûr de ne pas trouver dans tes mots clés
                   //(ça peut être un espace !)
              }
         }
    }
     
    date = "param1=value1&&param2=value2";
     
    requete.open('POST','url_de_ton_fichier_PHP',true);
    requete.send(data);
    }
    soit un fichier 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
    mysql_connect('localhost', 'root', '');
    mysql_select_db('thesaurus');
     
    $sql = "SELECT `ConceptName`
    FROM `concept`
    WHERE `ConceptName` LIKE '".$level_id."%' AND ThesaurusID=".'1'." LIMIT 10";
    $req = mysql_query($sql);
     
    $reponse = false;
     
    while($autoCompletion = mysql_fetch_assoc($req)){
         $reponse += $autoCompletion."+";
         //remplace '+' par le caractère de ton choix
         //ce doit être le même caractère que dans ton fichier js
         }
     
    echo $autoCompletion;
    dans ta page html, tu int�gres le js avec :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type='text/javascript' src='url_de_ton_fichier_js'></script>
    dans ton fichier php, tu disposes de $_POST['param1'] pour acc�der � la valeur de param1 d�finie dans ton js, et ainsi de suite pour parma2, param3...

    pour lancer la requ�te, tu n'as qu'� appeler la fonction RecupKeywordInBdd() (� laquelle tu peux ajouter des param�tres �galement).
    � ce stade l�, tabReponse est un tableau dont les valeurs sont les diff�rents mots cl�s ! je ne t'ai pas indiqu� de m�thode pour les afficher, car tout d�pend du conteneur !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    23
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 23
    Par d�faut
    Tout d'abord merci pour votre aide, j'ai deja vu ces trucs je veux essayer si ca marche pourtan dans le code que tu m'as donn� la fonction Requete est pas definie, Je pense c'est la meme que objXHR non???

    Et je comprends pas comment tu fais ca: $reponse += $autoCompletion."+";

    $response est un boolean et tu l'associe a $autoCompletion qui est un element d'un tableau qui est string

    Merci bien

  6. #6
    Membre exp�riment�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    247
    D�tails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 247
    Par d�faut
    slt,

    oui, requete est bien objXHR... je n'ai pas modifi� mon code de partout pour l'adapter au tiens...

    pourquoi $reponse serait un boolean ?

    on pourrait remplacer la boucle while par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $autoCompletion = mysql_fetch_assoc($req);
     
    for($i=0;$i<$autoCompletion.length;$i++){
         $reponse += $autoCompletion[$i]."+";
         //remplace '+' par le caractère de ton choix
         //ce doit être le même caractère que dans ton fichier js
         }
    normalement les deux fonctionnent aussi bien

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AJAX] [XMLHttpRequest] prob d'acc�s
    Par Invit� dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 24/10/2006, 17h38
  2. [AJAX] XMLHttpRequest fonctionne pas dans ie
    Par tchoukapi dans le forum G�n�ral JavaScript
    R�ponses: 15
    Dernier message: 27/09/2006, 11h45
  3. [ajax] XMLHttpRequest et formulaire(<input type='file'>)
    Par Are-no dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 23/08/2006, 20h22
  4. [AJAX] XMLHTTPREQUEST ne se met pas � jour :-/
    Par franckarts dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 04/08/2006, 18h11
  5. [AJAX] XMLHttpRequest en parall�le
    Par narkhor dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 27/07/2006, 09h57

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