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

AJAX Discussion :

[AJAX] Ajax et passage de parametre entre js et Php


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut [AJAX] Ajax et passage de parametre entre js et Php
    Voila, je veux utiliser des boutons pour faire diffiler un tableau que je recupere de ma base de donnees par palier de 3 lignes
    j utilise un script avec l objet XMLHttpRequest pour le faire de maniere asynchrone (au clique du bouton) mais j arrive pas a passer le nbre lignes pour pouvoir incrementer mon affichage a chaque clique

    voila mon code:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
     
    //On se connecte
    connectMaBase();
    // requête SQL qui compte le nombre total d'enregistrements dans la table et qui
    //récupère tous les enregistrements
    $i=0;
    $select = 'SELECT idmethode,nom,description,lien FROM methode limit '.$i.',3 ';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
            echo '<div id="methode">';
        echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
            echo '<tr>';
        echo '<td bgcolor="#669999" width="101">IdMethode</td>';
        echo '<td bgcolor="#669999" width="101">Nom</td>';
        echo '<td bgcolor="#669999" width="140">Description</td>';
        echo '<td bgcolor="#669999" width="145">Lien</td>';
            echo '</tr>'."\n"; 
      // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
            echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
        echo '</tr>'."\n";
        }
        echo '</table>'."\n";
        // fin du tableau.
        echo '</div>';
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
            echo '</table>'."\n";
            echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
            echo'<tr>';
        echo'<td width="545">&nbsp;</td>';
        echo'<td width="61"><input type="button" value="Precèdent" onClick=""/></td>';
        echo'<td width="61"><input type="button" value="Sommaire" onClick=""/></td>';
        echo'<td width="61"><input type="button" value="Suivant" onClick="JavaScript:follow();"/></td>';
            echo'</tr>'."\n";
            echo'</table>';
     
    ?>
    mon script 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    function getXhr(){
                                    var xhr = null;
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest();
    				else if(window.ActiveXObject){ // Internet Explorer
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    				   xhr = false;
    				}
                                    return xhr;
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
     
    function follow(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function()  {
                    if(xhr.readyState !=4){
                        document.getElementById('methode').innerHTML='Chargement en cours'}
                            else
                             {document.getElementById('methode').innerHTML=xhr.responseText}
                    }
     
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax_follow1.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				j=+3;
    				xhr.send("i="+j);
    			}
    mon Script 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    header('Content-Type: text/plain; charset=ISO-8859-1');
    //On se connecte
    mysql_connect("localhost","root","");
    mysql_select_db("assvisual");
    // requête SQL qui compte le nombre total d'enregistrements dans la table et qui
    //récupère tous les enregistrements
    $i=+3;
    $select = 'SELECT idmethode,nom,description,lien FROM methode limit '.$i.',3 ';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
     
        echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
    	echo '<tr>';
        echo '<td bgcolor="#669999" width="101">IdMethode</td>';
        echo '<td bgcolor="#669999" width="101">Nom</td>';
        echo '<td bgcolor="#669999" width="140">Description</td>';
        echo '<td bgcolor="#669999" width="145">Lien</td>';
     	echo '</tr>'."\n"; 
      // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
    	echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
    	echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
        echo '</tr>'."\n";
        }
        echo '</table>'."\n";
    	// fin du tableau.
     
     
    }
    else echo 'Pas d\'enregistrements dans cette table...';
     
    // on libère le résultat
    mysql_free_result($result);
     
     
     
    ?>

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par hakou08 Voir le message
    j arrive pas a passer le nbre lignes pour pouvoir incrementer mon affichage a chaque clique
    tu le passes bien, visiblement ...
    Le problème est surtout que tu ne le récupères pas côté PHP : tu ne fais que le redéfinir de manière indépendanteA+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    Comment faire pour le recuperer
    je sais qu il faut que je renvoie une variable Php a Js pour pouvoir plutard faire l incrementation mais comme je suis debutant dans la programmation web et surtout avec Javascript j arrive pas
    y t il une manière pour le faire svp

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    C'est un problème purement PHP : récupération d'une variable POST.

    Regarde les autres discussions de ce forum, tu trouveras plein d'exemples

    A+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    merci bcp je vais voir

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut
    j=+3;
    Tu veux ajouter 3 à j?
    Du coté PHP

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Tu veux ajouter 3 à j?
    Arf !
    Même pas vu celle-là
    Citation Envoyé par andry.aime Voir le message
    Du coté PHP
    Dommage, il a failli cherché tout seul

    A+

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    header('Content-Type: text/plain; charset=ISO-8859-1');
    //On se connecte
    mysql_connect("localhost","root","");
    mysql_select_db("assvisual");
    // requête SQL qui compte le nombre total d'enregistrements dans la table et qui
    //récupère tous les enregistrements
    if (isset($_POST["i"]){
    $i=$_POST["i"];
    $select = 'SELECT idmethode,nom,description,lien FROM methode limit '.$i.',3 ';
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    
    // si on a récupéré un résultat on l'affiche.
    if($total) {
        // début du tableau
    
        echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
    	echo '<tr>';
        echo '<td bgcolor="#669999" width="101">IdMethode</td>';
        echo '<td bgcolor="#669999" width="101">Nom</td>';
        echo '<td bgcolor="#669999" width="140">Description</td>';
        echo '<td bgcolor="#669999" width="145">Lien</td>';
     	echo '</tr>'."\n"; 
      // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
        while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
    	echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
    	echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
        echo '</tr>'."\n";
        }
        echo '</table>'."\n";
    	// fin du tableau.
    	
    
    }
    else echo 'Pas d\'enregistrements dans cette table...';
    
    // on libère le résultat
    mysql_free_result($result);
    
    }
    
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    j+=3;
    				xhr.send("i="+j);
    mais ça change rien
    en plus c le message 'Chargement en cours' qui s affiche apres le clique

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Et ça résout ton problème ?

    EDIT : donc non, vu ton EDIT ...

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Installe firebug pour tracer les erreurs.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    si je met ça sa marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_POST['i'])){
    $i=$_POST['i'];
    $i+=3;
    et si je remplace ce bout de code commça sa marche mais juste pour le premier clique je crois que j arrive pas faire le post normalement??????

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Je t'avais dit d'installer Firebug pour suivre les traces des erreurs.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    et ben je crois que le post passe
    mais je le recupere pas pour l incrementer
    c'est a dire j ai un probleme de passage de variable entre php et JavaScript
    comment je dois renvoyer la variable stp
    le debuguer ne signal pas d erreurs

    Merci d avance

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    je crois qu un
    document.getElementById('?').value
    dans l evenemet onclik fera ce retour??????

  15. #15
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Tu peux mettre j comme variable globale, ou bien le mettre dans un input hidden que tu incremente à chaque click.

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    alors j arrive toujours pas es ce que vous pouvez m illustrer comment dois je faire
    dans ma page principale j 'ai ajouter ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" id="nbre" name="nbre" value="0">
    et dans la meme page pour appeler mon script js je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Suivant" onClick="JavaScript:follow(document.getElementById('nbre').value)"/>
    mon Pgm 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
    function follow(nbre){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function()  {
                    if(xhr.readyState !=4){
                        document.getElementById('methode').innerHTML='Chargement en cours'}
                            else
                             {document.getElementById('methode').innerHTML=xhr.responseText}
                    }
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajax_follow1.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				nbre+=3;
    				xhr.send("i="+nbre);
    			}
    et dans le script Php : appeler par mon js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (isset($_POST['i'])){
    $i=$_POST['i'];

  17. #17
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Suivant" onclick="follow(document.getElementById('nbre').value)"/>
    Tu n'incrémente pas la valeur dans nbre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nbre+=3;
    	document.getElementById('nbre').value = nbre;
    	xhr.send("i="+nbre);

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 47
    Par défaut
    oui sa marche mais le retour de la variable de mon script php a js ne s execute
    puisque j la reponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('methode').innerHTML='Chargement en cours'}
    comment dois je faire pour recuperer le post

  19. #19
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Je t'avais dit d'installer Firebug pour suivre les traces des erreurs.
    Ensuite active le console et script pour localhost

  20. #20
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('methode').innerHTML='Chargement en cours'}
    innerHTML est risqué un peu essaie avec innerText

Discussions similaires

  1. Passage de parametre entre deux formulaires
    Par Rcanada dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 11h05
  2. [C#] Passage de paramètre entre forms
    Par farfadet dans le forum ASP.NET
    Réponses: 2
    Dernier message: 13/02/2006, 14h36
  3. passage de parametre entre deux page asp
    Par tomtom25 dans le forum ASP
    Réponses: 4
    Dernier message: 01/04/2005, 16h16
  4. sql dynamic : passage de parametre entre quotes
    Par de LANFRANCHI dans le forum SQL
    Réponses: 12
    Dernier message: 26/05/2004, 15h09

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