dilluns, 9 de desembre del 2013

Tractar camp select amb PHP

Suposem l'exemple anterior :

<select name="dies" size="4">
   <option value=1>Dilluns</option>
   <option value=2>Dimarts</option>
   <option value=3>Dimecres</option>
   <option value=4>Dijous</option>
   <option value=5>Divendres</option>
   <option value=6>Dissabte</option>
   <option value=7>Diumenge</option>

</select>

Quan enviem el formulari al servidor (al pulsar el botó submit) es crearà una entrada en el vector associatiu $_REQUEST amb el nom indicat a name. L'opció escollida, indicat en el value, serà el valor del vector
Per exemple, supossem que escollim Dijous amb value=4. En el vaotor associatiu $_REQUEST tindrem el següent valor:
$_REQUEST['dies']=4

Després amb un if podem validar el valor

if ($_REQUEST['dies']==4)
.....


En el cas de que el camp select sigui multiple:

<select name="dies[]" size="4" multiple>
   <option value=1>Dilluns</option>
   <option value=2>Dimarts</option>
   <option value=3>Dimecres</option>
   <option value=4>Dijous</option>
   <option value=5>Divendres</option>
   <option value=6>Dissabte</option>
   <option value=7>Diumenge</option>

</select>

Si ens fixem el primer que hem fet és afegir uns claudàtors al camp dies. D'aquesta manera ara el camp dies és una array que conté tots els valors que escollim
Serà un cas semblant, però el valor del vector associatiu $_REQUEST per la entrada "dies" en comptes de ser un string o un numèric ("4") serà un array amb tots els valor escollits.

$_REQUEST['dies']=array
Per exemple si hem escollit Dilluns i Dimarts. En primer lloc, per saber si s'ha escollit alguna opció preguntarem si existeix la variable $_REQUEST['name']


if (isset($_REQUEST[‘dies']))
{
$vector=$_REQUEST[‘dies'];
foreach ($vector as $valor)
{ echo "<br> ".$valor." "; }
}

Després podem volcar el contingut a un array. I després el podem tractar amb un foreach o un for, per exemple 

<?php 
if (isset($_REQUEST[‘dies'])) {
 $diesescollits=$_REQUEST["dies"];
//recorrem l'array. La primera possició és la 0
for ($i=0;$i<count($diesescollits);$i++)
  {
   echo "<br> Dies " . $i . ": " . $diesescollits[$i];
  } 

}
?>
 
 


Cap comentari:

Publica un comentari a l'entrada