想让这些php函数在这个html echo里工作[关闭]

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