2 valeurs d'une liste

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : 2 valeurs d'une liste

par Florent » 02 oct. 2006, 18:24

J'ai lu, puis je suis allé voir le lien de explode et j'ai tout compris :)
J'ai changé un peu ta suggestion, preuve que c'est du "pigé".
Voilà ce que donne donc mon code qui reçoit le formulaire :
if (isset($_POST['miser']) && $_POST['miser'] == 'Miser') {
	if (isset($_POST['mise']) && !empty($_POST['mise']) && isset($_POST['champion']) && !empty($_POST['champion'])){
	
		$envoi = explode(";", $_POST["champion"]);
		$champion = $envoi [0];
		$son_chef = $envoi [1];

		$champion = htmlentities(addslashes($champion));
		$son_chef = htmlentities(addslashes($son_chef));
		$mise = intval($_POST['mise']);
// vérifications
// sauvegarde dans la table
// confirmation
Donc je te remercie, ça m'arrange beaucoup :)

par sadeq » 02 oct. 2006, 13:26

Oui, il faut savoir que tout ce que tu mets dans VALUE='' d'une option sera envoyé au submit sous le nom du SELECT.

Ainsi dans ton exemple, puisque le SELECT est nommé "champion" php reçoit par un submit une variable $_GET["champion"] ou $_POST["champion"] qui contient le nom du champion.
Pour recevoir aussi le nom de son chef il suffit d'inclure ce dernier dans la clause VALUE avec le nom en les séparant par un point-virgule comme :
  • VALUE = 'toto;le chef de toto'
Une fois récupérée, la valeur sélectionnée est donc composée de 2 parties séparées par ;
Il suffit d'utiliser un explode() pour couper cette valeur en 2 chaînes exploitable.

Voici le comportement de php à la reception du submit pour traiter la liste "champion":
list($nom_champion, $son_chef) = explode(";", $_GET["champion"]); //ou $_POST au lieu de $_GET
A toi de jouer :wink:

2 valeurs d'une liste

par Florent » 02 oct. 2006, 13:07

Bonjour
J'ai un formulaire, liste et bouton de validation (submit).
J'alimente une liste depuis une table d'une bdd, le tout en php.
J'aimerais savoir si il est possible de récupérer 2 valeurs ?
<td style=" width: 60%;text-align: center;"><br />
					<select name="champion" style="width: 200px;">
					<option value="aucun">Choisissez un champion</option>
					<option value="aucun">- - - - - - - - - - - - - - - - - - - - -</option>
					<?
					// faire liste des champions
					$sql = "SELECT nom,son_chef FROM tournoi where son_chef not in ('$login')";
					$r_l = mysql_query($sql);
					
					while ($r_liste = mysql_fetch_array($r_l)) {
					echo '<option value="', $r_liste['nom'],'">', $r_liste['nom']. ' --> ', $r_liste['son_chef'].  '</option>';
					}
					?>
					</select>
					<br /><br />
					<input type="text" name="mise" value="1" /><br />Max. : 10 000 000 <br /><br />
					<input class="bouton" type="submit" name="miser" value="Miser" /><br />
				</td>
Ce que j'aimerais, c'est que quand on choisi un élément de la liste et qu'on valide, soit envoyé par POST :
$r_liste['nom'] et $r_liste['son_chef']
Pour éviter de faire une nouvelle requette dans le fichier qui reçoit les variables afin de ressortir la vleur correspndant à nom c'est à dire"son_chef".
Si c'est faisable....
Merci