Page 1 sur 1

Liste déroulante

Posté : 03 nov. 2016, 17:10
par ga87
Bonjour,
Je veux simplement que ma liste se repositionne sur la valeur choisie, c'est surement très simple mais je coince.
Mon code :
<?php
	echo"<form name='myform' action='essai.php' method='post'>";
	echo "<select name='x' onchange='myform.submit()'>";
  	for($i=1;$i<=10;$i++)
  	{
  		if($i==$_POST['x']){$selected='selected';}else{$selected='';}
  		echo "ixs=".$i."  ".$_POST['x']."  ".$selected;
		echo "<option value=".$i." '".$selected."'>".$i."</option>";
  	}
  	echo "</select>";
  	echo "<input type='text' value='".$_POST['x']."'>";
  	echo "</form>";
?>
Merci pour l'aide.

Re: Liste déroulante

Posté : 03 nov. 2016, 17:59
par Spols
salut,

essaye sans les simple quote autour du selected
<?php
  echo"<form name='myform' action='essai.php' method='post'>";
  echo "<select name='x' onchange='myform.submit()'>";
  	for($i=1;$i<=10;$i++)
  	{
  		if($i==$_POST['x']){$selected='selected';}else{$selected='';}
  		echo "ixs=".$i."  ".$_POST['x']."  ".$selected;
    echo "<option value=".$i." ".$selected.">".$i."</option>";
  	}
  	echo "</select>";
  	echo "<input type='text' value='".$_POST['x']."'>";
  	echo "</form>";
?>

Re: Liste déroulante

Posté : 03 nov. 2016, 19:36
par vincent.c
Bonsoir,

N'hésite pas à mettre des espaces et des indentations dans ton code. Ce sera plus simple à relire, à la fois pour toi mais aussi pour les autres.

Lorsque tu utilise "echo" pour afficher uniquement du texte HTML, préfère les simples quotes. Pour les attributs HTML, utilise plutôt les doubles quotes.

Utilise les doubles quotes pour éviter (au mieux) la concaténation et ainsi éviter les erreurs de guillemets.

La forme ternaire est un bon moyen de faire une affectation conditionnelle sur une ligne.
<?php

echo '<form name="myform" action="essai.php" method="POST">';
    echo '<select name="x" onchange="myform.submit()">';

        for ($i = 1; $i <= 10; $i++) {
            $selected = ($i == $_POST['x']) ? 'selected' : '';
            // echo "ixs=".$i."  ".$_POST['x']."  ".$selected; // ?
            echo "<option value=\"$i\" $selected>$i</option>";
        }

    echo '</select>';
    echo '<input type="text" value="'.$_POST['x'].'">';
echo '</form>';
Bonne soirée.

Re: Liste déroulante

Posté : 04 nov. 2016, 12:42
par ga87
Salut,
Merci Spols et Vincent, ça fonctionne, un peu bizarre que simplement en mettant des simples ou doubles cote ça marche.
Bon il suffit de le savoir c'est l'expérience.
Encore merci.
Guy