select et option, garder la dernière valeur

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 : select et option, garder la dernière valeur

par gesualda » 05 oct. 2005, 20:23

Je pense que la c'est plus que piger.

Un grand merci à tous les deux.


@++ :D

par Cyrano » 05 oct. 2005, 20:08

On appelle ça un opérateur ternaire qui revient strictement au même que de faire:
if($nom == $tab_nom[$i])
{
    $selected =  " selected = \"selected\"";
}
else
{
    $selected = null;
}
Mais sur une seule ligne :)

par gesualda » 05 oct. 2005, 20:08

Whoua !! alors la c'est plus que clair, ca devrait coller pour la suite.

Merci à tous les deux, c'est fort et instructif

@++

:D

par Truc » 05 oct. 2005, 20:03

Salut, je me permet de te répondre (c'est dans mes cordes :lol: )
$selected = $nom == $tab_nom[$i] ? " selected = \"selected\"" : null;
Le " ? " fait une "sorte" de " if ", enfaite il y a comparaison entre $nom et $tab_nom[$i] si les 2 variables sont iden tiques alors la 3eme variables ( $selected ) vaut " selected = \"selected\"" (donc le 1er terme avant les deux points ( : ) et si elles sont différentes alors $selected vaut NULL (le 2eme terme)
c'est assez claire ? :wink:

par gesualda » 05 oct. 2005, 19:53

Merci Cyrano,

en effet, c'est cela que je voulais faire, mais pourrait bien sur sans que j'abuse, juste m'expliquer un peu, car je crois pas avoir tout piger.

en fait c'est de ca que je parle:
 $selected = $nom == $tab_nom[$i] ? " selected = \"selected\"" : null; 
Que signifie le " ? "
merci

par Cyrano » 05 oct. 2005, 19:40

Comme ceci peut-être ?
<?php
$tab_nom = array("choisir..","toto","tata","titi","moi","toi","ton père","ta mère");
?>
<form method="post">
<select name="nom">
<?php
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
for($i = 0; $i < count($tab_nom); $i++)
{
    $selected = $nom == $tab_nom[$i] ? " selected = \"selected\"" : null;
    echo "<option value=\"". $tab_nom[$i] ."\"". $selected .">". $tab_nom[$i] ."</option>\n";
}
?>
</select>
<input type="submit" nmame="ok">
</form>

select et option, garder la dernière valeur

par gesualda » 05 oct. 2005, 19:32

Bonjour à tous,

J'aimerai savoir comment faire pour garder l'option selectec après la validation d'un formulaire. voici un bout de code:
<?php 
$tab_nom = array("choisir..","toto","tata","titi","moi","toi","ton père","ta mère");
?>
<form method="post">
<select name="nom">
<?php 
for($i=0;$i<count($tab_nom);$i++)
{
echo "<option value=\"$tab_nom[$i]\">$tab_nom[$i]</option>\n";
}
?>
</select>
<input type="submit" nmame="ok">
</form>
Jusqu'a présent je faisais cela et je n 'appelai pas le script par le biais d'un tableau.
<option value="toto"<?php  if(isset($_POST['nom']) && (strcmp($_POST['nom'],"toto")   == 0 )) {echo 'selected="selected"';}?>>toto</option>
etc...

Cela fonctionnait, mais faisait écrire beaucoup de ligne de code sans nécéssité, je pense.

Comment puisje proceder.? Pourrait avoir quelques explications avec un correctif si c'est possible ?

Merci d'avance