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] listes liées - passage de parametres


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut [AJAX] listes liées - passage de parametres
    Bonjour,
    Depuis hier j'essais de me faire à l'ajax pour 2 listes liées.
    j'ai pris le script de cette page.

    donc ma base c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    create table equipes(
    no_equipe smallint (2) not null,
    nom_equipe varchar (20) not null,
    primary key (no_equipe)
    )TYPE=INNODB;
     
    create table joueurs(
    no_joueur smallint(3) not null,
    no_equipe smallint(2) not null,
    joueur varchar(50) not null,
    primary key (no_joueur),
    foreign key (no_equipe) references equipes(no_equipe)
    )TYPE=INNODB;
    ma page principale:
    nommée ajax.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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    <html>
    	<head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<script type='text/javascript'>
     
    			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 go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementByNo_joueurs('joueurs').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","selectequipe.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
    				// ici, l'id de l'auteur
    				sel = document.getElementByNo_equipe('equipe');
    				no_equipe = sel.value;
    				xhr.send("no_equipe="+no_equipe);
     
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Sélections</legend>
    				<label>sélection de l'équipe</label>
    				<select name='equipe' id='equipe' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?php
    						mysql_connect("localhost","","");
    						mysql_select_db("test");
    						$res = mysql_query("SELECT * FROM equipes ORDER BY no_equipe");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value=\"".$row['no_equipe']."\">".$row['nom_equipe']."</option>\n";
     
    						}	
    								?>
     
     
     
    				</select>
    				<label>joueurs</label>
    				<div id='joueur' style='display:inline'>
    				<select name='joueur'>
    					<option value='-1'>Choisir un joueur</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>
    et ma seconde page:
    nommée selectequipe.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
     
    <?php
    	echo "<select name='joueur'>";
    	if(isset($_POST["no_equipe"])){
    		mysql_connect("localhost","","");
    		mysql_select_db("test");
    		$res = mysql_query("SELECT 'no_joueur', 'joueur' FROM joueurs 
    			WHERE 'no_equipe'=".$_POST["no_equipe"]." ORDER BY joueur");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["no_joueur"]."'>".$row["joueur"]."</option>";
    		}
    	}
     
    	echo "</select>";
    ?>
    voila pour les pages de codes!

    Maintenant voici mon probleme:
    j'obtiens correctement ma premiere liste mais je ne peux afficher un résultat dans la seconde.
    Je pense que mon probleme est dans le passage de donnée en POST pour ma seconde page.
    De plus, j'utilise WAMP SERVER, je ne sais pas si mes problemes viennent de là.
    Merci de m'éclairer pour faire fonctionner mes listes.

    dadal56

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sel = document.getElementByNo_equipe('equipe');
    Original
    Désolé, mais getElementByNo_equipe, ça n'existe pas !

    EDIT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sel = document.getElementById('equipe');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut essais infructueux
    J'ai effectué la modification proposée ci-dessus, mais ça ne fonctionne toujours pas!



    merci de m'aider!!!


    dadal56

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ah, il y en avais un autre !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementByNo_joueurs('joueurs').innerHTML = leselect;
    à remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('joueurs').innerHTML = leselect;
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut toujours le meme probleme
    j'ai egalement effectué cette modification mais cela ne fonctionne toujours pas.

    merci de continuer à m'aider

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Alors, pour pouvoir regarder plus en détail, il faudrait :
    • Le code HTML généré plutôt que le PHP (clic droit, voir source copier/coller le code HTML)
    • Le contenu du responseText : avec FF et Firebug, tu l'as dans la console.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut code source html
    Voici le code soucre html généré par le code.
    De plus, j'ai modifier un pe le code dans le head.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    <html>
    	<head>
    		<title>My webpage is rich</title>
    		<script type='text/javascript'>
     
    			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 change(){
     
    				var xhr = getXhr();
     
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					alert(xhr.readyState);//le mettre en commentaire lorsque le code est fini
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						di = document.getElementById('joueurs');
    						di.innerHTML = xhr.responseText;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","selectequipe.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
    				// ici, l'id de l'auteur
    				idequipe = document.getElementById('equipes').options[document.getElementById('equipes').selectedIndex].value;
    				//alert(idauteur);
    				xhr.send("idEquipe="+idequipe);
     
     
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
     
    				<legend>Sélection des joueurs</legend>
    				<label>Equipes</label>
    				<select name='auteur' id='auteur' onchange='change()'>
    					<option value='-1'>Aucune équipe</option>
    					<option value='1'>Séniors A</option><option value='2'>Séniors B</option><option value='3'>Séniors C</option><option value='4'>- 18</option><option value='5'>- 15</option><option value='6'>- 13</option><option value='7'>Benjamins A</option><option value='8'>Benjamins B</option><option value='9'>Poussins A</option><option value='10'>Poussins B</option><option value='11'>Débutants</option><option value='12'>Vétérants</option>				</select>
     
    				<label>joueurs</label>
    				<div id='joueur' style='display:inline'>
    				<select name='joueur'>
    					<option value='-1'>Choisir un joueur</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
     
    	</body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Listes liées: quelle solution?
    Par Xavier1979 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/05/2007, 09h40
  2. [AJAX] Listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2007, 06h59
  3. [AJAX] listes liées : faire une redirection
    Par _nico42_ dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/10/2006, 13h28
  4. [AJAX] liste liée ajax: s'iou plait, cherchez l'erreur
    Par redwire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/09/2006, 20h26
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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