this is php document, when building this form i want to use that forech function to build the dropdown menu... as im inside the (HTML) it doesnt work... anyone has a clue how to make it work?
echo <<<HTML
<form method="post" class="form">
<label for="datafalta">Data da falta</label>
<input id="datafalta" type="date" value="{$dateToday}" name="datafalta"/>
<label for="alunofalta">Selecionar aluno</label>
<select name="aluno">
<option value="0" selected></option>
foreach ($calfaltas as $a) {
<option value="1">$a->nome</option>
}
</select><br /><br />
<input type="submit" name="enviar" value="Enviar">
</form>
HTML;
You cannot mix html and php as you are. For a start you are missing such simple parts like ''
around strings.
<?php
echo '
<html>
<form method="post" class="form">
<label for="datafalta">Data da falta</label>
<input id="datafalta" type="date" value="' . $dateToday . '" name="datafalta"/>
<label for="alunofalta">Selecionar aluno</label>
<select name="aluno">
<option value="0" selected></option>';
foreach ($calfaltas as $a) {
echo '
<option value="1">' . $a->nome . '</option>';
}
echo '
</select><br /><br />
<input type="submit" name="enviar" value="Enviar">
</form>
<html>';
This should work:
<?php
echo"<form method='post' class='form'>
<label for='datafalta'>Data da falta</label>
<input id='datafalta' type='date' value='{$dateToday}' name='datafalta'/>
<label for='alunofalta'>Selecionar aluno</label>
<select name='aluno'>
<option value='0' selected></option>
";
foreach ($calfaltas as $a) {
echo " <option value='1'>$a->nome</option>";
}
echo"
</select><br /><br />
<input type='submit' name='enviar' value='Enviar'>
</form>";
?>
Break your heredoc in two parts with the foreach in the middle :
<?php
echo <<<HTML
<form method="post" class="form">
<label for="datafalta">Data da falta</label>
<input id="datafalta" type="date" value="{$dateToday}" name="datafalta"/>
<label for="alunofalta">Selecionar aluno</label>
<select name="aluno">
<option value="0" selected></option>
HTML;
foreach ($calfaltas as $a) {
echo "<option value='{$a->id}'>{$a->nome}</option>";
}
echo <<<HTML
</select><br /><br />
<input type="submit" name="enviar" value="Enviar">
</form>
HTML;
?>
Instead of putting the foreach
loop inside the heredoc output....create all the options in variable and output that variable in the middle of the string
$options='';
foreach ($calfaltas as $a) {
$options.='<option value="'.$a->someProperty.'">'.$a->nome.'</option>';
}
echo <<<HTML
<form method="post" class="form">
<label for="datafalta">Data da falta</label>
<input id="datafalta" type="date" value="{$dateToday}" name="datafalta"/>
<label for="alunofalta">Selecionar aluno</label>
<select name="aluno">
<option value="0" selected></option>
$options
</select><br /><br />
<input type="submit" name="enviar" value="Enviar">
</form>
HTML;
note you need to fix value of the <option>
tag to reflect proper data in array