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] recuperer plusieurs valeurs dans une fonction


Sujet :

AJAX

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 59
    Points
    59
    Par défaut [AJAX] recuperer plusieurs valeurs dans une fonction
    Bonjour,

    j'ai trouver une fonction sur internet que j'ai modifier par rapport a mon code. En faite je voudrai récupérer toutes les valeurs de mes select.

    voila je que j'ai fait :

    fichier fonction.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
     
    var xhr = null; 
     
    //On teste si le navigateur supporte les objets XMLHttpRequest
    function getXhr()
    {
    	if(window.XMLHttpRequest)	//Firefox,Safari,...
    	   xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject)	//Internet Explorer
    	{ 
    	   try 
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch (e)
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{
    		//Le nagivateur ne supporte pas les objets XMLHTTPRequest
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    }

    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
     
    function phrase()
    {
    	//On fait un teste du navigateur
    	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)
    		{
    			laphrase = xhr.responseText;
    			document.getElementById('phrase').innerHTML = laphrase;
    		}
    	}
     
    	//On definie le mode du transfert de la variable vers une page php
    	xhr.open("POST","Ajax_phrase.php",true);
    	//ne pas oublier ceci pour la methode POST
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	//ne pas oublier de poster les arguments
    	sel = document.getElementById('presence');
    	idpresence = sel.options[sel.selectedIndex].value;
    	xhr.send("idPresence="+idpresence);
     
    	sel = document.getElementById('base');
    	idbase = sel.options[sel.selectedIndex].value;
    	xhr.send("idBase="+idbase);
     
    	sel = document.getElementById('site');
    	idsite = sel.options[sel.selectedIndex].value;
    	xhr.send("idSite="+idsite);
     
    	sel = document.getElementById('sous_res');
    	idsous_res = sel.options[sel.selectedIndex].value;
    	xhr.send("idSous_res="+idsous_res);
     
    	sel = document.getElementById('pourcentage');
    	idpourcentage = sel.options[sel.selectedIndex].value;
    	xhr.send("idPourcentage="+idpourcentage);
     
    	sel = document.getElementById('nombre');
    	idnombre = sel.options[sel.selectedIndex].value;
    	xhr.send("idNombre="+idnombre);
    }
    fichier index.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
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    <label>Presence :</label>
    					<select name='presence' id='presence'>
    						<?
    							mysql_connect("localhost","etu","lannion");
    							mysql_select_db("bddetu");
    							$res = mysql_query("SELECT DISTINCT presence FROM champs WHERE presence !=''");
    							echo "<option value='-1' selected>-- Veuillez choisir --</option>";
    							while($row = mysql_fetch_assoc($res)){
    								echo "<option value='".$row["presence"]."'>".$row["presence"]."</option>";
    							}
    							mysql_close();
    						?>
    					</select>
     
    				<label>Base :</label>
    					<select name='base' id='base'>
    						<?
    							mysql_connect("localhost","etu","lannion");
    							mysql_select_db("bddetu");
    							$res = mysql_query("SELECT DISTINCT base FROM champs");
    							echo "<option value='-1' selected>-- Veuillez choisir --</option>";
    							while($row = mysql_fetch_assoc($res)){
    								echo "<option value='".$row["base"]."'>".$row["base"]."</option>";
    							}
    							mysql_close();
    						?>
    					</select>
    				<br><br>
     
    				<label>Site :</label>
    					<select name='site' id='site' onchange='sous_reseau()'>
    						<?
    							//Premet de mettre une chaine de caractere en minuscule
    							function minuscules(&$chaine)
    							{
    								$chaine=strtolower($chaine);
    							} 
    							$site = 'PARIS';
    							minuscules(&$site);
     
    							mysql_connect("localhost","etu","lannion");
    							mysql_select_db("bddetu");
    							$res = mysql_query("SELECT DISTINCT site FROM site_sous_reseau WHERE site NOT LIKE '$site' ORDER BY site");
    							echo "<option value='$site'>$site</option>";
    							while($row = mysql_fetch_assoc($res)){
    								echo "<option value='".$row["site"]."'>".$row["site"]."</option>";
    							}
    							mysql_close();
    						?>
    					</select>
     
    				<label>Sous-reseau :</label>
    					<div id='sous_res' style='display:inline'>
    						<select name='sous_res'>
    							<option value='-1'>Choisir un sous-reseau</option>
    						</select>
    					</div>
    				<br><br>
     
    				<label>Signe :</label>
    					<select name='pourcentage' id='pourcentage'>
    						<?
    							mysql_connect("localhost","etu","lannion");
    							mysql_select_db("bddetu");
    							$res = mysql_query("SELECT DISTINCT pourcentage FROM champs");
    							echo "<option value='-1' selected>-- Veuillez choisir --</option>";
    							while($row = mysql_fetch_assoc($res)){
    								echo "<option value='".$row["pourcentage"]."'>".$row["pourcentage"]."</option>";
    							}
    							mysql_close();
    						?>
    					</select>
     
    				<label>Nombre :</label>
    					<select name='nombre' id='nombre' onchange='phrase()'>
    						<?
    							mysql_connect("localhost","etu","lannion");
    							mysql_select_db("bddetu");
    							$res = mysql_query("SELECT DISTINCT nombre FROM champs");
    							echo "<option value='-1' selected>-- Veuillez choisir --</option>";
    							while($row = mysql_fetch_assoc($res)){
    								echo "<option value='".$row["nombre"]."'>".$row["nombre"]."</option>";
    							}
    							mysql_close();
    						?>
    					</select>
    				<br><br>
     
    					<div id='phrase' style='display:inline'>
    					</div>

    fichier Ajax_phrase.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
     
    <?php
    	//Cette page php va permettre d'afficher une phrase
    	$choix = $_POST['idPresence'];
    	$base_de_donnee = $_POST['idBase'];
    	$site=$_POST["idSite"];
    	$sous_reseau = $_POST['idSous_res'];
    	$pourcentage = $_POST['idPourcentage'];
    	$nombre = $_POST['idNombre'];
     
    	echo '<p>Les machines qui sont '.$choix.' dans '.$base_de_donnee.' sur le site de '.$site.' et du sous-réseau '.$base_de_donnee.'.</p>';
    	echo '<p>Avec un pourcentage activité '.$pourcentage.' à '.$nombre.'%</p>';
     
    ?>

    je voudrai récupérer toutes les valeurs des listes déroulantes pour écrire un phrase en fonction des éléments sélectionner.

    merci de votre aide
    tortue

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonjour,
    Modifie ta fonction comme ceci :
    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
    19
    20
    21
    function phrase()
    {
    	//On fait un teste du navigateur
    	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)
    		{
    			laphrase = xhr.responseText;
    			document.getElementById('phrase').innerHTML = laphrase;
    		}
    	}
     
    		xhr.open("POST","Ajax_phrase.php",true);
    		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		idPresence = document.getElementById('presence').options[document.getElementById('presence').selectedIndex].value;
    		idBase = document.getElementById('base').options[document.getElementById('base').selectedIndex].value;
    		xhr.send("idPresence="+idPresence+"&idBase="+idBase);
    }
    Là je ne t'ai mis que les deux premiers paramètres, à toi d(ajouter les autres.

    La solution était ici : Web 2.0, allez plus loin avec AJAX et XMLHttpRequest

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 59
    Points
    59
    Par défaut
    merci beaucoup ça marche bien sauf quand je fait appel au sous-reseau

    lorsque je met cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    idReseau=document.getElementById('sous_res').options[document.getElementById('sous_res').selectedIndex].value;
    ca ne marche plus je ne vois pas pourquoi ???

    sinon pour les autres lignes ça fonctionne

    merci de ton aide
    tortue

  4. #4
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Re,
    Puisque l'élément ayant l'id "'sous_res'" est une div et non le select :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id='sous_res' style='display:inline'>
    <select name='sous_res'>
    <option value='-1'>Choisir un sous-reseau</option>
    </select>
    </div>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 70
    Points : 59
    Points
    59
    Par défaut
    merci,merci,merci....

    passe un bon week-end Jumano

    tortue

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

Discussions similaires

  1. [Toutes versions] Fonction FIND avec plusieurs valeurs dans une meme cellule.
    Par Manu3100 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 05/07/2015, 18h56
  2. [Prototype] Récupérer une valeur dans une fonction Ajax
    Par nkordiko dans le forum Bibliothèques & Frameworks
    Réponses: 17
    Dernier message: 08/01/2010, 11h50
  3. Retourner plusieurs valeurs a une fonction ajax
    Par Hyuge dans le forum jQuery
    Réponses: 2
    Dernier message: 11/06/2009, 15h49
  4. recuperer plusieurs valeurs dans une cellule
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2008, 21h40
  5. [C#] Recuperation de valeur dans une autre page
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 10h32

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