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] Reprendre données select et les envoyer à php avec un REQUEST


Sujet :

AJAX

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [AJAX] Reprendre données select et les envoyer à php avec un REQUEST
    Bonjour. Je suis entrain de faire un programme me permettant, avec une base de donnée, de gérer un catalogue de matériel, des utilisateurs inscrits, et j'en passe.
    Pour réaliser se projet j'ai décidé de faire plusieurs tests afin de comprendre correctement le mécanisme pour faire mes choix concernant les méthodes que je voudrait appliquer au projet.

    J'ai réalisé plusieurs tests avec succès mais celui-ci me pose problème. J'aimerai faire une liste avec un <select> et un bouton. Ici j'aimerai envoyer l'information vers un serveur qui devrait savoir l'option du select que l'utilisateur a choisi et renvoyer un message en fonction du select choisi.

    Voici la page HTML

    Code html : 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
    <script type="text/javascript" src="child.js"></script>
    </head>
     
    <body>
     
    <table>
    	<tr>
    		<td>
    				Materiel
    		</td>
            <td>
            <select name="location" id="selection">
              <option value="cam">Camera</option>
              <option value="mic">Micro</option>
              <option value="car">Mercedes</option>
            </select>
            </td>
    		<td>
            </td>
    	</tr>
        <tr><td><input type="button" onclick="trouver(this)" value="envoyer"/></td></tr>
    </table>    
    </body>


    Le code .js ( je n'ai pas repris dedans la fonction lançant Ajax )

    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
    function requete(data) {
    	creationXH = creationXHR();
    	if (creationXH != null) {
    		creationXH.open("post","child.php", true);
    		creationXH.onreadystatechange = etatserveur;
    		creationXH.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    		creationXH.send(data);
    	} else {
    		alert(error);
    	}
    }
    function etatserveur() {
    	if(creationXH.readyState==4){
    		if(creationXH.status==200){
    			var matmat=creationXH.responseText;
    		}
    	}
    }
    function trouver() {	
    var local = document.getElementsByTagName('select');
    	alert(local.length);
    var data = local.childNodes();
    alert(data);
    requete(data);
    }

    Voilà mon problème se trouve dans la fonction "trouver" j'aimerai pouvoir reprendre les donnée choisie dans le select. Pour les envoyer sur une page php avec un REQUEST enfin ça je verrai après.

    Si vous avez une idée comment faire avancer ce projet n'hésitez pas. Merci d'avance pour votre aide.

    Cordialement Julien.

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="trouver(this)"
    Pourquoi envoyer un paramètre qui n'est pas utilisé dans la fonction appelée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var local = document.getElementsByTagName('select');
    var data = local.childNodes();
    Comme son s l'indique, getElementsByTagName() renvoie une collection d'objets HTML. Or seul un élément HTML (et non une collection) possède une méthode childNodes().
    Il faut donc préciser de quel élément dans la collection tu as besoin.
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour tout d'abord je m'excuse du retard de ma réponse.

    Je vous remercie pour votre réponse.

    Cependant je ne vois pas trop bien comment régler ce problème, je ne me suis lancé dans la programmation que récemment.

    Donc si je comprend bien, dans "getElementByTagName", je doit reprendre les "option" à la place du "select" ?

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    un truc de ce genre ?

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select onchange="send(this.value);">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>
     
    <div id="result"></div>

    Code javascript : 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 send(v){
      $.ajax({
        url: 'http://monsite.com/monapi/chilp.php?v='+v,
        success:function(data){
          $("#result").html(data);
        }/*,
        statusCode: {
          403 : function(){// Acces interdit 
          },
          404 : function(){// non trouvé 
          },
          408 : function(){// time out 
          },
          500 : function(){// erreur serveur 
          }
        }*/
      });
    }
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour merci pour votre aide j'ai finalement trouvé la solution

    voici donc le code .js du moins ce qui faisait défaut dans mon premier post.

    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
    function etatserveur() {
    	if(creationXH.readyState==4){
    		if(creationXH.status==200){
    			var matmat=creationXH.responseText;
    			var ddiv = document.createElement('div');
    ddiv.style.width="200";
    ddiv.style.height="100px";
    ddiv.style.backgroundColor="white";
    ddiv.style.color="red";
    ddiv.innerHTML = matmat;
    document.body.appendChild(ddiv); 
    		}
    	}
    }
     
     
     
     
    function trouver() {	
    var local = document.getElementsByTagName('option');
    for(var i=0; i<local.length; i++) { 
    	if (local[i].selected==true) {
     
    var data = "materiel="+local[i].id;
    data += "&"+local[i].id+"="+"oui";
    	} 
    }
     
    requete(data);
    }

    Et si cela intéresse des personnes concernant ce script, voici ce que j'ai fait en php pour la récupération des donnée :
    Code php : 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
    <?php
     
    $donnee = "";
    foreach($_REQUEST as $key=>$val) {
     
    	$donnee .=$key." ".$val."< /br>";
     
    	}
     
    if ($key=='voiture'){
     
    	echo $key.' Nous n avons pas cela';
     
    	} else {
     
    echo $donnee;
    	}
     
    ?>


    Merci encore pour vos réponses

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/06/2009, 11h29
  2. [AJAX] Modifier les header (PHP) avec une requête XMLHttpRequest?
    Par Prosis dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/09/2008, 00h34
  3. [Wamp] Comment forcer wamp à ouvrir les pages.php avec firefox?
    Par guerrier2005 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 10/08/2008, 23h26
  4. Utiliser les pages PHP avec XAMPP
    Par god_enel dans le forum Langage
    Réponses: 8
    Dernier message: 15/01/2007, 10h40

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