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] Variable PHP dans Ajax


Sujet :

AJAX

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut [AJAX] Variable PHP dans Ajax
    Bonjour,
    J'ai ce petit bout de code:

    La page principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    .../...
    <td class='locaux'>
    	<select class='formelement' name='equipe1' id='equipe1' onchange='equ()'>
    	<option value=''></option>
    		<?php
    		$query = "SELECT categorie, equipe FROM classement WHERE categorie='$cat' ORDER BY equipe";
    		$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
    		while($row = mysql_fetch_array($result)){
    			echo"<option value='".$row['equipe']."'>".$row['equipe']."</option>\n";
    		}
    		?>
    	</select>
    </td>
    .../...
    Ma fonction javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function equ(){
    	var xhr = getXhr();
    	xhr.onreadystatechange = function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    	leselect = xhr.responseText;
    	document.getElementById('liste1').innerHTML = leselect;
       	}
    }
    	xhr.open("POST","../gymnase.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	sel = document.getElementById('equipe1');
    	choix = sel.options[sel.selectedIndex].value;
    	xhr.send("equipe1="+choix);
    }
    et mon programme qui affiche ma nouvelle liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    header('Content-Type: text/html; charset=ISO-8859-15');echo "<select name='gymnase' id='gymnase'>";
    echo "<option value=''></option>";
    require_once('./config/config.inc.php');
    $query = "SELECT t1.id, t1.club, t2.id_club, t2.salle FROM clubs AS t1, salles AS t2 WHERE t1.club = '".utf8_decode($_POST['equipe1'])."' AND t1.id=t2.id_club ORDER BY t2.salle";
    echo $query;
    $result = mysql_query($query) or die ('Erreur SQL !'.$sql.''.mysql_error());
    while($row = mysql_fetch_array($result)){
    	echo "<option value='".$row['3']."'>".$row['3']."</option>";
    	$gymnase=$row['3'];
    }
     echo "</select>";
    ?>
    Tout ceci fonctionne très bien si je n'ai qu'une ligne à remplir dans le formulaire. Seulement, le nombre de lignes à remplir est variable.
    Alors voici comment j'ai fait:

    toujours la page principale:
    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
          <?php
          $cpt=0;
          while($cpt < $_SESSION['matchs_add'])
          {
          ?>
    .../...
    <td class='locaux'>
    	<select class='formelement' name='equipe1[<?php echo $cpt;?>]' id='equipe1[<?php echo $cpt;?>]' onchange='equ()'>
    	<option value=''></option>
    		<?php
    		$query = "SELECT categorie, equipe FROM classement WHERE categorie='$cat' ORDER BY equipe";
    		$result = mysql_query($query) or die('Erreur SQL !'.$sql.''.mysql_error());
    		while($row = mysql_fetch_array($result)){
    			echo"<option value='".$row['equipe']."'>".$row['equipe']."</option>\n";
    		}
    		?>
    	</select>
    </td>
    .../...
          <?php
          $cpt++; } ?>
    et voici mon code javascript ou ca coince parce que je ne sais pas comment récuperer la valeur de cpt...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function equ(){
    	var xhr = getXhr();
    	xhr.onreadystatechange = function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    	leselect = xhr.responseText;
    	document.getElementById('liste1').innerHTML = leselect;
       	}
    }
    	xhr.open("POST","../gymnase.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	sel = document.getElementById('equipe1[<?php echo $cpt;?>]');
    	choix = sel.options[sel.selectedIndex].value;
    	xhr.send("equipe1[<?php echo $cpt;?>]="+choix);
    }
    J'ai mis en rouge ce qui ne fonctionne pas.
    Si quelqu'un pouvait me dire comment récuperer la valeur de ma boucle php dans mon code javascript.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par Equinoxe5 Voir le message
    Si quelqu'un pouvait me dire comment récuperer la valeur de ma boucle php dans mon code javascript.
    Par définition, non.

    Poste ton code généré si le problème concerne réellement AJAX, sinon ça se passe côté PHP ^^

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 133
    Par défaut
    Bonjour,
    En fait, il n'y a pas de code généré puisqu'il y a une erreur avant. Voici le code d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Détails de l’erreur de la page Web
     
    Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CMNTDF; InfoPath.2; .NET4.0C; Tablet PC 2.0)
    Horodateur : Sat, 17 Sep 2011 07:32:50 UTC
     
     
    Message*: Objet requis
    Ligne*: 12
    Caractère*: 2
    Code*: 0
    URI*: http://localhost.../javascript.js

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    au lieu d'un compteur $cpt, il serait plus judicieux d'utiliser l'ID (auto-incrément = unique) de l'enregistrement : $row['id'].

    PS : en code HTML, on utilisera plutôt les "..." pour les attributs de balises.
    Ce qui permet de garder les '...' pour écrire le JavaScript ou PHP (inclus dans le HTML).

    Un moyen très simple :
    <select class="formelement" name="equipe1[<?php echo $cpt;?>]" id="equipe1[<?php echo $row['id'];?>]" onchange="equ('<?php echo $row['id'];?>')">
    Et :
    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
    function equ(idbd){
    	var idbd; // id de l enregistrement (ID auto-incrément dans la bd)
    	var xhr = getXhr();
    	xhr.onreadystatechange = function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    	leselect = xhr.responseText;
    	document.getElementById('liste1').innerHTML = leselect;
       	}
    }
    	xhr.open("POST","../gymnase.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	sel = document.getElementById('equipe1[idbd]');
    	choix = sel.options[sel.selectedIndex].value;
    	// on transmet : choix (-> equipe1) et idbd (-> id)
    	xhr.send("equipe1="+choix+"&amp;id="+idbd);
    }
    Dernière modification par Invité ; 17/09/2011 à 10h58.

Discussions similaires

  1. [AJAX] Variables partagées entre Ajax et Php
    Par david-62 dans le forum AJAX
    Réponses: 1
    Dernier message: 23/08/2011, 07h38
  2. Récupérer une variable php dans une requete ajax
    Par bedomon dans le forum jQuery
    Réponses: 2
    Dernier message: 30/09/2010, 14h16
  3. [AJAX] du php dans une variable javascript ?
    Par Invité dans le forum AJAX
    Réponses: 3
    Dernier message: 28/06/2010, 16h52
  4. [AJAX] fonction php dans ajax
    Par Fabinounours dans le forum AJAX
    Réponses: 10
    Dernier message: 01/10/2009, 16h20
  5. [AJAX] requete php dans JavaScript
    Par juliens9 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/11/2007, 13h28

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