Initiliser un menu déroulant sur une 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 : Initiliser un menu déroulant sur une valeur

par Porky » 06 mai 2005, 19:51

merci à toi Cyrano pour ton explication.

Je vais de ce pas me retaper mon code de manière beaucoup plus lisible et du coup plus light.

:P

par Cyrano » 06 mai 2005, 19:40

bien sur, tu ouvres ton while et tu peux intercaler du HTML en fermant temporairement les balises <?php, voici un exemple d'un code sur lequel je suis, avec une boucle for, mais le principe est le même :
              <select name="type_bien" id="type_bien" title="Type de bien annoncé">
    <?php
    for ($i=0; $i < count($types); $i++)
    {
?>
  <option value="<?php echo($type[$i][0]); ?>"<?php if($type_bien == $types[$i][0]){echo("selected=\"selected\"");} ?>><?php echo $types[$i][1]?></option>
<?php
    }
?>
</select>
Je ne perds rien du tout en route.

par Porky » 06 mai 2005, 19:36

OK..... mais dans le cas de while($data = mysql_fetch_array($req)) c'est possible aussi ?

par Cyrano » 06 mai 2005, 19:32

En fermant la balise <?php, on ne pert pas les valeurs de variables: on les perdrait en changeant de page si elle ne sont pas globales..

par Porky » 06 mai 2005, 19:27

Merci pour votre réponse rapide!
Ca marche avec "==". c'est alot....

quand a l'integration du HTML dans PHP c'est que je croyais que le fait de fermer les balises PHP me ferait perdre certaines valeurs, car ce bout de code est contenu en fait dans un tableau "while($data = mysql_fetch_array($req))".

C'est donc faux !!????....heu.... pas sur.
En tous cas encore merci à vous.

ps: je trouve pas le RESOLU à mettre sur le post!!!

par Cyrano » 06 mai 2005, 19:10

Pourquoi faire générer du HTML inutilement à PHP ? Ça alourdit la charge serveur et ça rend le code nettement moins lisible:
<?php 
$test=3;
?>
<form name="form1" method="post" action="">
<p>
<select name="select">
<option value="1"<?php if($test == 1){echo(" selected");} ?>>1</option>
<option value="2"<?php if($test == 2){echo(" selected");} ?>>2</option>
<option value="3"<?php if($test == 3){echo(" selected");} ?>>3</option>
<option value="4"<?php if($test == 4){echo(" selected");} ?>>4</option>
<option value="5"<?php if($test == 5){echo(" selected");} ?>>5</option>
<option value="6"<?php if($test == 6){echo(" selected");} ?>>6</option>
</select>

par Gentoo Warrior » 06 mai 2005, 19:04

essaie avec un double == comme ceci : if ($test==4)

Initiliser un menu déroulant sur une valeur

par Porky » 06 mai 2005, 18:58

Bonjour, j'essaye de remplir le menu déroulant en initialisant celle ci sur la variable "$test"
mais le menu déroulant s'initialise toujours sur la valeur "4".

(J'aimerais garder l'integration du HTML dans le PHP.)

Code (exemple):


<? $test=3;

echo'<form name="form1" method="post" action="">
<p>
<select name="select">
<option>1</option>
<option>2</option>';
if ($test=3){
echo'<option selected>3</option>';}
else {
echo'<option>3</option>';}
if ($test=4)
{echo'<option selected>4</option>';}
else {
echo'<option>4</option>';}
echo'
<option>5</option>
<option>6</option>
</select>';
?>


Merci d'avance