Mais uma questão engraçada...
Tenho um form com um select multi onde os visitantes escolhem as suas marcas preferidas:
Código (HTML):
Desta forma, passarei para pagseguinte.php o array Marcas[] com todas as selecções feitas...
O problema surge se eu quiser também aí seleccionar as marcas escolhidas no form anterior...
Cheguei a este código:
Código (PHP):
Isto parece resultar se existirem poucas opções no SELECT, mas vamos imaginar que existem 25 opções...
Existe alguma forma melhor de escrever isto?
Obrigado pelas colaborações que venham a surgir.
Tenho um form com um select multi onde os visitantes escolhem as suas marcas preferidas:
Código (HTML):
<form name="Dados" method="post" action="pagseguinte.php">
<p>Diz-me as tuas marcas preferidas:</p>
<select name="Marcas[]" multiple="multiple">
<option value="Volvo">Volvo</option>
<option value="Saab">Saab</option>
<option value="Opel">Opel</option>
<option value="Audi">Audi</option>
<option value="Fiat">Fiat</option>
<option value="Renault">Renault</option>
</select>
<input type="submit" value="Escolher">
</form>
<p>Diz-me as tuas marcas preferidas:</p>
<select name="Marcas[]" multiple="multiple">
<option value="Volvo">Volvo</option>
<option value="Saab">Saab</option>
<option value="Opel">Opel</option>
<option value="Audi">Audi</option>
<option value="Fiat">Fiat</option>
<option value="Renault">Renault</option>
</select>
<input type="submit" value="Escolher">
</form>
Desta forma, passarei para pagseguinte.php o array Marcas[] com todas as selecções feitas...
O problema surge se eu quiser também aí seleccionar as marcas escolhidas no form anterior...
Cheguei a este código:
Código (PHP):
<?php $strpesquisa = ((isset($_POST['Marcas'])) ? explode(',', §_POST['Marcas']) : '_'); ?>
<p>Eis as marcas que declaraste serem as tuas preferidas:</p>
<select name="Marcas[]" multiple="multiple">
<option value="Volvo"<?php if(strpos($strpesquisa, 'Volvo') !== false)) echo ' selected="selected"'; ?>>Volvo</option>
<option value="Saab"<?php if(strpos($strpesquisa, 'Saab') !== false)) echo ' selected="selected"'; ?>>Saab</option>
<option value="Opel"<?php if(strpos($strpesquisa, 'Opel') !== false)) echo ' selected="selected"'; ?>>Opel</option>
<option value="Audi"<?php if(strpos($strpesquisa, 'Audi') !== false)) echo ' selected="selected"'; ?>>Audi</option>
<option value="Fiat"<?php if(strpos($strpesquisa, 'Fiat') !== false)) echo ' selected="selected"'; ?>>Fiat</option>
<option value="Renault"<?php if(strpos($strpesquisa, 'Renault') !== false)) echo ' selected="selected"'; ?>>Renault</option>
</select>
<p>Eis as marcas que declaraste serem as tuas preferidas:</p>
<select name="Marcas[]" multiple="multiple">
<option value="Volvo"<?php if(strpos($strpesquisa, 'Volvo') !== false)) echo ' selected="selected"'; ?>>Volvo</option>
<option value="Saab"<?php if(strpos($strpesquisa, 'Saab') !== false)) echo ' selected="selected"'; ?>>Saab</option>
<option value="Opel"<?php if(strpos($strpesquisa, 'Opel') !== false)) echo ' selected="selected"'; ?>>Opel</option>
<option value="Audi"<?php if(strpos($strpesquisa, 'Audi') !== false)) echo ' selected="selected"'; ?>>Audi</option>
<option value="Fiat"<?php if(strpos($strpesquisa, 'Fiat') !== false)) echo ' selected="selected"'; ?>>Fiat</option>
<option value="Renault"<?php if(strpos($strpesquisa, 'Renault') !== false)) echo ' selected="selected"'; ?>>Renault</option>
</select>
Isto parece resultar se existirem poucas opções no SELECT, mas vamos imaginar que existem 25 opções...
Existe alguma forma melhor de escrever isto?
Obrigado pelas colaborações que venham a surgir.