Hallo,

Ik return een contact formulier en wil een if conditie toevoegen, om het veld Onderwerp wel/niet te tonen. Ik probeer dit:


$email_form = '<form id="form" method="post">

	'. if(mijn_setting == "true") : .'
		<label for="onderwerp">Onderwerp</label>
		<input type="text" id="onderwerp" value="'.$value.'">
	'. endif; .'

	<input type="submit" value="Verstuur">
</form>';

return $email_form;


Maar dit werkt niet. Ook niet als ik de open/closing tags van PHP gebruik.
Wie kan me doorgeven hoe ik dit wél werkend kan krijgen?

Guido
Thomas van den Heuvel op 14/07/2019 12:42:02

Hoe meer (statische) HTML er in zo'n snippet zit, hoe beter alles leesbaar blijft met bovenstaande aanpak.

Voor jou misschien.
Ik vind het zo onleesbaar.
Je zou het ook in een include kunnen stoppen. Dan heb je een template voor het formulier. Op dit moment ziet het er misschien onoverzichtelijk uit, maar dat komt alleen omdat er relatief veel code en commentaar in zit.

Zonder commentaar valt het al best mee:
<?php
$mijn_setting = true;
$value = 'onderwerp';

ob_start();
    ?><form id="form" method="post"><?php
        if ($mijn_setting) {
            ?><label for="onderwerp">Onderwerp</label><input type="text" id="onderwerp" value="<?php echo $value; ?>"><?php
        }
        ?><input type="submit" value="Verstuur">
    </form><?php
return ob_get_clean();
?>

Of in een apart bestand:
<?php
$mijn_setting = true;
$value = 'onderwerp';

ob_start();
include_once './ob.test.tpl';
return ob_get_clean();
?>


<form id="form" method="post"><?php
    if ($mijn_setting) {
        ?><label for="onderwerp">Onderwerp</label><input type="text" id="onderwerp" value="<?php echo $value; ?>"><?php
    }
    ?><input type="submit" value="Verstuur">
</form>

Veel beter leesbaar dan dit wordt het niet.

Reageren