login  Naam:   Wachtwoord: 
Registreer je!
 Forum

if statement in form option

Offline Veerle - 29/04/2010 12:18 (laatste wijziging 29/04/2010 12:20)
Avatar van VeerleNieuw lid Ik probeer in een dropdownveld (die bestaat uit een lijst van postcodes uit de databank) een selected waarde mee te geven, namelijk de waarde die een ingelogde persoon heeft meegegeven. Zodat de postcode die de gebruiker heeft meegegeven bij de registratie automatisch geselecteerd is in de dropdown.

  1. <tr>
  2. <td>Postcode en gemeente:</td>
  3. <td><select name="PC" id="PC">
  4.  
  5. <?php
  6.  
  7. while ($line = mysqli_fetch_array($postcodes)){
  8. //deze string werkt
  9. //$string = "<option value=".$line['PC_id']." >".$line['PC_pc'] . " ".(htmlentities($line['PC_city']))."</option>" ;
  10.  
  11. //deze string werkt niet, hij geeft een fout op de if
  12. $string = "<option value=".$line['PC_id']. if($_SESSION['PC_id'] == $_SESSION['user_pc_id']) echo 'selected';." >".$line['PC_pc'] . " ".(htmlentities($line['PC_city']))."</option>" ;
  13.  
  14. echo $string;
  15.  
  16. }?>
  17. </select></td>
  18. </tr>

Weet iemand hoe ik dit anders kan oplossen?

3 antwoorden

Gesponsorde links
Offline Wim - 29/04/2010 12:43 (laatste wijziging 29/04/2010 12:57)
Avatar van Wim Crew algemeen In een string zelf kan je geen if gebruiken. Je kan dit oplossen door de string te splitsen, of alles rechtstreeks te echo'en:

  1. <?php
  2.  
  3. while ($line = mysqli_fetch_array($postcodes)){
  4. //deze string werkt
  5. //$string = "<option value=".$line['PC_id']." >".$line['PC_pc'] . " ".(htmlentities($line['PC_city']))."</option>" ;
  6.  
  7. $string = "<option value=".$line['PC_id'];
  8. if($_SESSION['PC_id'] == $_SESSION['user_pc_id']) $string .= 'selected';
  9. $string .= " >".$line['PC_pc'] . " ".(htmlentities($line['PC_city']))."</option>" ;
  10.  
  11. echo $string;
  12.  
  13. }?>
Offline TotempaaltJ - 29/04/2010 12:51
Avatar van TotempaaltJ PHP interesse Je kan een if niet zo meegeven, dat moet los staan van andere dingen. Kijk naar de "Ternary Operator" op php.net.
Offline Martijn - 29/04/2010 17:46 (laatste wijziging 29/04/2010 17:50)
Avatar van Martijn Crew PHP je kunt wel een if/else in een string doen, met de short if/else however raad ik je dit niet aan, maar zal n voorbeeld geven:

  1. $string = "<option value=".$line['PC_id'].($_SESSION['PC_id'] == $_SESSION['user_pc_id'] ? 'selected="selected"' : NULL)." >".$line['PC_pc'] . " ".(htmlentities($line['PC_city']))."</option>" ;


edit: zal even meer verklaren.
1 Zou het niet doen omdat je dan een lange onoverzichtelijke code krijgt
2 dat stukje tussen ( en ) is de short if/else. Dat stukje met selected en NULL zijn echo selected if true en NULL if false. NULL is leeg, zodat er niets staat als dat niet moet
3 het is niet 'selected' maar 'selected="selected" ' 

edit2:
  1. if($var == "goed"){ echo"goed";}
  2. else{ echo "fout";}
  3. // doet in short zo:
  4. echo $var=="goed" ? "goed" : "fout";
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.24s