在 HTML 中从 PHP 调用 Combobox

Invoke Combobox from PHP in HTML

我有一个 PHP 文件,它解析 JSON 列表并将其提供给组合框:

<?php
    $jsonData = '{"marco":"marco@test.it", "giovanni":"giovanni@mail.it"}';
    $json = json_decode($jsonData, true);

    $opts = '';
    foreach($json as $name => $email)
    {
    $opts .= '<option value="'.$email.'">'.$name.'</option>';
    }

    echo ' <select name="Team1">'.$opts.'</select> <br> ';
    echo ' <select name="Team2">'.$opts.'</select> <br>';

?>

我正在尝试将其包含在 HTML 页面中,以便在加载时显示组合框:

<html>
    <head>
        <title> Invio Mail </title>
    </head>
    <body>    
        <form name="mail" action="mailer.php" method="post">
            <p>
            <center><b> Invio mail </b> 
            <br>
            <br>
            <? include("combobox.php") ?><br>
            Messaggio: <input type="text" name="name" rows="5" required><br>
            <br>
            <center><input type="submit" value=" Invia "></center><br>
        </form>
    </body>
</html>

但我无法让它们出现!

我不需要实时更新,创建页面时更新列表就足够了。

此外,我无法从组合框中读取关联值。

确保 HTML 页面具有 .php 扩展名而不是 .html 并检查您的网络服务器是否支持 short open tag for php.

编辑: 如果 short_open_tag 的值为 on.

,您可以检查 phpinfo()

编辑 2: 您可以使用 $_POST['Team1']$_POST['Team2']

mailer.php 中访问所选值

编辑:

<? include("combobox.php") ?> 

<?php include("combobox.php") ?>

因此,html 代码将是:

<html>
    <head>
        <title> Invio Mail </title>
    </head>
    <body>    
        <form name="mail" action="mailer.php" method="post">
            <p>
            <center><b> Invio mail </b> 
            <br>
            <br>
            <?php include("combobox.php") ?><br>
            Messaggio: <input type="text" name="name" rows="5" required><br>
            <br>
            <center><input type="submit" value=" Invia "></center><br>
        </form>
    </body>
</html>