met een formpje wil ik de gebruiker laten kiezen tussen 2 radiobuttons, EES of EAV. die waardes komen in mijn $_POST variabelen, gecheckt met een echo.
maar als ik onderstaande if en else if laat doorlopen, blijft hij in beiden gevallen de 'dit is EES' tonen.
ik heb ook nog gevarieerd met === en met !=, maar hij blijft hierop hangen.
kan iemand me vertellen wat ik niet goed doe?
<?PHP
$type = $_POST['trial'];
if($type = 'EES')
{
echo 'dit is EES';
}
else if($type = 'EAV')
{
echo 'dit is EAV';
}
?>
ok, er kan alleen geen ongeldige selectie zijn. de gebruiker moet een radiobutton aanklikken. als die dat niet gedaan heeft, komt hij niet bij dit deel van het script. blijft het dan nog steeds if else? ook als ik een derde optie zou willen toevoegen?
Toch even duiden (voor wie het interesseert).
De = doet twee dingen:
- een waarde toewijzen aan een variabele
- Die zelfde waarde teruggeven (return'en)
Je kan daar gebruik van maken in de if.
bv. dit
<?php
$type = $_POST['trial'];
if($type === 'EES') {
?>
kan je ook schrijven als
<?php
if($type = $_POST['trial'] === 'EES')
?>
[/een beetje offtopic]
@Stefan, ik probeer die hack-kans zo klein mogelijk te maken door met htmlspecialchars en met mysql_real_escape_string te werken. maar als men echt wil en de skils heeft, ben ik van mening dat alles te hacken is.
Dat is niet mijn punt als je een if else kiest ipv een if elseif en iemand wijzigd te value van de radiobutton zal hij altijd in de else komen ;) wat in jouw geval ook een waarde is dan.