2010-11-16 30 views
1

Dropdown J'ai quelques listes de sélection sur ma forme qui ressemble un peu à ceci:Sélection

<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>&pound;400,000</option> 

Comme vous pouvez le voir (ci-dessus) J'ai un peu de PHP en dire là-bas la forme à retenir c'est la sélection sur soumettre.

Y at-il un peu de PHP qui se souviendrait de chaque sélection sans la méthode plutôt lourde que j'utilise ci-dessus?

Merci d'avance.

MISE À JOUR:

<select name="MaxPrice" id="MaxPrice"> 
<option value="9999999" selected>Price (Max)</option> 
<option value="100000" <?php if($_GET['MaxPrice'] == "100000") { echo("selected"); } ?>>&pound;100,000</option> 
<option value="200000" <?php if($_GET['MaxPrice'] == "200000") { echo("selected"); } ?>>&pound;200,000</option> 
<option value="300000" <?php if($_GET['MaxPrice'] == "300000") { echo("selected"); } ?>>&pound;300,000</option> 
<option value="400000" <?php if($_GET['MaxPrice'] == "400000") { echo("selected"); } ?>>&pound;400,000</option> 
</select> 

MISE À JOUR 2: Est-il possible de mettre en œuvre cette technique dans un certain JavaScript?

if (BuyRent=='buy') 
document.SearchForm.MaxPrice.options[9999999]=new Option("Price (Max)","150000000"); 
document.SearchForm.MaxPrice.options[100000]=new Option("\u00A3100,000","100000"); 
document.SearchForm.MaxPrice.options[200000]=new Option("\u00A3200,000","200000"); 
document.SearchForm.MaxPrice.options[300000]=new Option("\u00A3300,000","300000"); 
document.SearchForm.MaxPrice.options[400000]=new Option("\u00A3400,000","400000");  
+0

C'est généralement la méthode que j'utiliserais. Mais vous pouvez faire un tableau PHP à la place, et faire une boucle sur le contenu du tableau, au lieu de coder en dur une série de balises

Répondre

1

Habituellement, vous utilisez une sorte de boucle. Voici un exemple:

$my_values = array(100000, 200000, 300000, 400000); 

foreach($my_values as $value) { 
    echo "<option value=\"{$value}\""; 
    echo ($_GET['MaxPrice'] == $value) ? 'selected="selected"'; 
    echo ">" . number_format($value, 0, '.', ',') . "</option>"; 
} 

qui imprimerait 4 balises telles que <option value="100000" selected="selected">100,000</option>.

Ce code utilise également le ternary operator, mais ce n'est évidemment pas obligatoire, vous pouvez écrire toute l'instruction if/else si vous le souhaitez.

Modifier:

<select name="MaxPrice" id="MaxPrice"> 
    <option value="9999999">Price (Max)</option> 
    <?php 
    $my_values = array(100000, 200000, 300000, 400000); 

    foreach($my_values as $value) { 
     echo "<option value=\"{$value}\""; 
     echo ($_GET['MaxPrice'] == $value) ? 'selected="selected"' : ""; 
     echo ">&pound; " . number_format($value, 0, '.', ',') . "</option>"; 
    } 
    ?> 
</select> 
+0

Où placerais-je quelque chose comme ça sur mon site? –

+0

Au lieu d'écrire manuellement chaque balise '