Page 1 sur 1

AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 10 févr. 2011, 17:09
par p0k3
Bonjour !

Je suis nouveau sur le forum ! Je suis bien-heureux de l'avoir trouvé !

Je vous explique mon problème :

Je suis sur une page ou un utilisateur doit sélectionner une liste de client ainsi que des contacts correspondants !

Pour le moment j'ai crée une Select (en HTML) pour afficher ma liste de client !

Image

Lorsque je choisi un client, je génère un autre Select contenant les contacts correspondants au client avec AJAX !

Image

Ensuite lorsque je sélectionne un client, je souhaiterai qu'en cliquant sur un bouton, ce dernier s'ajoute à une liste...

Mais je ne sais pas vraiment comment faire !

Voici mon code :
<h2> Destinataire </h2>
<table>
<form action="./session_devis.php?action=destinataire" method="post">
	<tr>
	<td><select id="client" size="30" onchange='go();'>
		<?php
				$reponse = $bdd->query("SELECT * FROM client ORDER BY NUM_CLIENT" );
				$nbr_client = $reponse->rowCount();
	
				//affichage de la liste des clients !
				while($donnees = $reponse->fetch())
				{?>
						<option value="<?php echo $donnees['NUM_CLIENT']; ?>"><?php echo $donnees['NOM'] ?></option>
				<?php
				}?>
	</select></td>
	
	<td><div id='div_contact'><select size="30"></select></div></td>
	<td><input type="button" onclick="add_dest()" value="Ajouter" /></td>
	<td><select name="dest" size="30"></select>
	</tr>
<input type="submit" name="dest" value="Suivant" />
</form>
</table>
Je sais, coder en tableau c'est moche, mais la flème de faire du CSS

et voici le code JAVA :
<script>
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;
}
		
function go()
{
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = 
		function test()
		{
			// 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)
			{
				var leselect = xhr.responseText;
				//On se sert de innerHTML pour rajouter les options a la liste
				document.getElementById('div_contact').innerHTML = leselect;
			}
		}
	xhr.open("GET","../ajax/ajax_maj_contact.php?val=" + document.getElementById('client').value ,true);
	xhr.send(null);
}
</script>
Et enfin, le code php appelé par AJAX :
<?php
	echo "<select id='client' size='30'>";	
		include("../connexion/bdd.php");	
		$reponse = $bdd->query("SELECT * FROM contact WHERE NUM_CLIENT = '" . $_GET['val'] . "'");
		while($donnees = $reponse->fetch())
		{
			echo "<option value='" . $donnees['NUM_CLIENT'] . "'>" . $donnees['NOM'] . "</option>";
		}
	echo "</select>";
?>
Merci pour vos futures réponses !

Re: AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 10 févr. 2011, 19:03
par AB
Lorsque je choisi un client, je génère un autre Select contenant les contacts correspondants au client avec AJAX !

Ensuite lorsque je sélectionne un client, je souhaiterai qu'en cliquant sur un bouton, ce dernier s'ajoute à une liste...

Mais je ne sais pas vraiment comment faire !

Merci pour vos futures réponses !
A quelle liste ? pourquoi faire ? il faut nous en dire un peu plus sur ce que tu veux faire.

Sinon dans ton code "<select id='client' size='30'>" il manque l'attribut "name" qui indique le nom du champ que tu pourras récupérer (par exemple : name="client")

Re: AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 11 févr. 2011, 09:16
par p0k3
Merci pour ta réponse !

Je vais corrigé les attributs, c'est vrai que j'oublie de mettre les "name"...

En fait je voudrais récupérer une liste (dans un tableau ?) du type :
array{
[1] => "client" = "NUM_CLIENT" ; "contact" = "NUM_CONTACT";
[2] => "client" = "Num_CLIENT"; "contact" = "NUM_CONTACT"; ...
}

Et ce pour chaque contact sélectionner ! Afin ensuite de pouvoir insérer ce tableau dans une variable de session !

Re: AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 11 févr. 2011, 20:42
par AB
Et bien maintenant regarde le contenu du post quand tu envoies le formulaire
<?php 
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
Tu devrais avoir les éléments pour constituer ton tableau.

Re: AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 14 févr. 2011, 11:09
par p0k3
Ok !
Merci !

Re: AJAX/php/HTML et Formulaire ! Récupération de valeur !

Posté : 07 juin 2012, 15:08
par Simon G
Ce que tu as fait m'intéresse beaucoup, c'est plus ergonomique que ce que j'ai fait, J'aimerais savoir si tu peux enlever un client de ta liste de droite sans recommencer ta sélection au début?