0

我正在尝试在 php 中创建一个不断变化的下拉列表,但没有数据库。这是我到目前为止想出的

<body>

<form method = "post">
 <table>

 <tr>
     <td>
     <p>Name</p>
     </td>
     <td><input type="text" name="Name" /></td>
</tr>

<tr>
        <td><p>State</p>
        </td>
        <td>
            <select name = "State">
            <option value = "PA"> Pennsylvania</option>
            <option value = "CA"> California</option>
            <option value = "AZ"> Arizona</option>
            <option value = "NY"> New York</option>
            <option value = "FL"> Florida</option>
        </select>
        </td>
</tr>

    <td><input type="submit" name = "formSubmit" value="Submit" /></td>
    </td>
</tr>
</table>
</form>

<?php
        if(isset($_POST['formSubmit']))
        {
            if(empty($_POST['Name']))
            {
                echo("You forgot your name");
            }

            else
            {

            }
        }
?>

</body>

我曾计划使用“else”语句来生成我的第二个下拉列表,但到目前为止,我尝试过的任何方法都没有奏效。我到处寻找想法,但我遇到的大部分信息都与数据库有关。这不是一个数据库,它是一个 PHP 程序。也许我对它的工作原理有错误的想法。我应该尝试调用一个提前创建表单的函数,还是我完全偏离了我正在尝试的内容?

4

2 回答 2

0

jQuery 将为您提供真正的动态结果,而无需重新加载页面。但是,如果您想使用 PHP 将文本框中的内容添加到值列表中,那么您可以使用 PHP 会话作为数组来保存这样的值。

<?php
session_start();
    if(isset($_POST['formSubmit']))
    {
        if(empty($_POST['Name']))
        {
            echo("You forgot your name");
        }

        else
        {
            $name = $_POST['Name'];
            if(isset($_SESSION['List']))
            {
                $index = count($_SESSION['List']);
                $_SESSION['List'][$index+1] = $name;
            }
            else
            {
                $_SESSION['List'][0] = $name;
            }
        }
    }
    ?>
   <body>
   <form method = "post">
   <table>

   <tr>
   <td>
   <p>Name</p>
   </td>
   <td><input type="text" name="Name" /></td>
   </tr>

   <tr>
    <td><p>State</p>
    </td>
    <td>
        <select name = "State">
        <option value = "PA"> Pennsylvania</option>
        <option value = "CA"> California</option>
        <option value = "AZ"> Arizona</option>
        <option value = "NY"> New York</option>
        <option value = "FL"> Florida</option>
        <?php 
        if(isset($_SESSION['List']))
        {
            foreach($_SESSION['List'] as $name)
            {
            echo '<option value="'.$name.'">'.$name.'</option>';
            }
        }
        ?>
    </select>
    </td>
    </tr>

    <td><input type="submit" name = "formSubmit" value="Submit" /></td>
    </td>
    </tr>
    </table>
    </form>
    </body>
于 2013-09-26T16:45:34.490 回答
0

为此,您需要 javascript
已经发布了一个与您相关的问题

javascript-动态下拉框更新

于 2013-09-26T16:27:36.577 回答