使用php插入drop select表单元素

使用php插入drop select表单元素,php,html,Php,Html,我正试图用php创建一个下拉框,从填充有状态名称的数组中提取状态。我用.php扩展名保存了文件,并添加了代码,试图从我正在创建的数组中创建一个下拉菜单。由于某些原因,下拉菜单不起作用 <!DOCTYPE html> <html> <head> <style> </style> <script type="text/javascript"> //

我正试图用php创建一个下拉框,从填充有状态名称的数组中提取状态。我用.php扩展名保存了文件,并添加了代码,试图从我正在创建的数组中创建一个下拉菜单。由于某些原因,下拉菜单不起作用

<!DOCTYPE html>
<html>

    <head>
        <style>
        </style>
        <script type="text/javascript">
            //create function to be called upon submission
            function verify(event) {
                var hasError = false;
                var check1=document.getElementById("saws").value;
                var check2=document.getElementById("pliers").value;
                var check3=document.getElementById("planers").value;
                var ok = [];
                ok[0] = check1.search(/^$|\d+/);
                ok[1] = check2.search(/^$|\d+/);
                ok[2] = check3.search(/^$|\d+/);
                for (i = 0; i < ok.length; i++) {
                    if (ok[i] !== 0) {
                        hasError = true;
                        alert("Invalid input.");
                        event.preventDefault();
                    }
                }
                if (hasError) return false;
                else return true;
            }
        </script>
        <title>l6p2</title>
        <meta charset="UTF-8" />
        <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
    </head>

    <body>
        <h1>Lab 6, part 2 </h1>
        <form action = "/formtest.php" method="post" onsubmit= "return verify(event)">
            <table>
                <thead>
                    <tr>
                        <th>Item</th>
                        <th>Price</th>
                        <th>Quantity</th>
                    </tr>
                </thead>
                <tbody id="tbody">
                    <tr>
                        <td>Saw</td>
                        <td>$15.99</td>
                        <td><input type="text" name="saws" id="saws" size="2" /></td>
                    </tr>
                    <tr>
                        <td>Pliers</td>
                        <td>$12.99</td>
                        <td><input type="text" name="pliers" id="pliers" size="2" /></td>
                    </tr>
                    <tr>
                        <td>Planer</td>
                        <td>$79.99</td>
                        <td><input type="text" name="planers" id="planers" size="2" /></td>
                    </tr>
                </tbody>
            </table>
            <p>
                <label> First Name:
                    <input type="text" name="fname" size ="30" />
                </label>
                <br />
                <br />
                <label> Last Name:
                    <input type="text" name="lname" size ="30" />
                </label>
                <br />
                <br />
                <label> Shipping Address:
                    <input type="text" name="address" size ="30" />
                </label>
                <br />
                <br />
                <label> City:
                    <input type="text" name="csz" size ="30" />
                </label>
                <br />
                <br />
                    <?php
                        $states = array('Alabama','Alaska','Arizona','California','Florida','Georgia');
                        echo '<label> State:';
                        echo '<select name="state">';
                        for ($i = 0; $i < count($states); $i++) {
                            echo '<option>' . $states[$i] . '</option>';
                        }
                        echo '</select>';
                        echo '</label>';
                    ?>

            </p>
            <h3>Payment Method</h3>
            <p>
                <label> 
                    <input type="radio" name="payment" value="visa" checked = "checked" />
                    Visa
                </label>
                <label>
                    <input type="radio" name="payment" value="mc" />
                    Master Card
                </label>
                <label>
                    <input type="radio" name="payment" value="amex" />
                    American Express
                </label>
                <br />
            </p>
            <p>
                <input type="Submit" value="Submit Order" />
            </p>
        </form>

        <h3>Links</h3>
        <a href="index.html">Home</a>
    </body>

</html>

//创建提交时要调用的函数
功能验证(事件){
var hasError=false;
var check1=document.getElementById(“saws”).value;
var check2=document.getElementById(“钳子”).value;
var check3=document.getElementById(“planers”).value;
var ok=[];
确定[0]=check1.search(/^$|\d+/);
确定[1]=check2.search(/^$|\d+/);
确定[2]=check3.search(/^$|\d+/);
对于(i=0;i

姓氏:

送货地址:

城市:

付款方式 签证 万事达卡 美国运通

链接
这是工作不正常的部件:

<?php
   $states = array('Alabama','Alaska','Arizona','California','Florida','Georgia');
    echo '<label> State:';
    echo '<select name="state">';
    for ($i = 0; $i < count($states); $i++) {
       echo '<option>' . $states[$i] . '</option>';
    }
       echo '</select>';
       echo '</label>';
?>

我认为问题在于循环的计数,您需要知道数组的长度,因此请尝试使用sizeof($states)

for ($i = 0; $i < sizeof($states); $i++) {
for($i=0;$i
另一件事:你必须在“选项”上加上一些值才能在后端得到它。如下所示:

echo '<option value="'.$states[$i].'">' . $states[$i] . '</option>';
echo'.$states[$i].';
最后一点:您不需要将“select”放在“label”中。您可以使用标签上的“for”属性来引用select id。 以下是所有代码:

<?php
     $states = array('Alabama','Alaska','Arizona','California','Florida','Georgia');
     echo '<label for="state"> State: </label>';
     echo '<select name="state" id="state">';
     for ($i = 0; $i < sizeof($states); $i++) {
        echo '<option value="'.$states[$i].'">' . $states[$i] . 
        '</option>';
     }
     echo '</select>';
?>


祝你好运。

在这种情况下,只需使用一个简单的foreach:

foreach ($states as $state) {

    echo '<option value="'.$state.'">' . $state . '</option>';
}
foreach($states为$state){
回显“.$state.”;
}

你的数组是基本的,不需要任何特殊的魔法就可以工作。

sizeof
count
的别名,所以这一部分没有什么区别。虽然使用
foreach
可以代替计数器工作。是的,你说得对:)。我认为问题确实在于选项的值。不幸的是,我最终得到了这个d显示:状态:';echo“带单引号和句点的空下拉列表”;echo“”;?>它的工作原理是什么?而不是显示:“State:DROP DOWN WITH STATES HERE”我得到:“State:';echo“DROP DOWN”读作“'.$STATES[i]”;;echo“”;?>