[RESOLU] Liste déroulante

Eléphanteau du PHP | 15 Messages

03 nov. 2016, 17:10

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.

Mammouth du PHP | 1967 Messages

03 nov. 2016, 17:59

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>";
?>
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 9 Messages

03 nov. 2016, 19:36

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.
Vincent Chapron
Formateur et Consultant PHP/JS @Openska
Twitter: @vincent_chapron

Eléphanteau du PHP | 15 Messages

04 nov. 2016, 12:42

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