你如何从<select>表单收集输入?

时间:2018-04-18 22:43:11

标签: php html

我正在创建一个使用HTML和PHP访问Marina数据库(包含船只/所有者ETC ......)的页面,但我不知道如何捕获和使用从下拉列表中选择的选项&lt; select&gt;表格,然后显示该所有者名下的所有船只(在同一页面上)。 这是我的相关代码......     echo'&lt; form align =“left”;顶= “200”;行动= “使page2.php”;方法= “POST” &GT;             &lt; p&gt;选择所有者:&lt; / p&gt;             &lt; select top =“200”; NAME = “form1中”; ID = “form1的” &GT;';     foreach($ value as $ v){         echo'&lt; option value =“'。$ v ['LastName']。'”&gt;'。$ v ['LastName']。'&lt; / option&gt;';     }     echo'&lt; / select&gt;         &LT; /形式&GT;         &lt; form align =“left”;顶= “250” &GT;         &lt; input type =“submit”value =“Submit”&gt;         &LT; /形式&GT;';         $ form1 = $ _REQUEST ['form1'];         if($ form1){//如果有数据提交到页面         echo'&lt; p&gt; $ form1&lt; / p&gt;';     } 当我使用此代码时,我收到一条错误,指出“form1是一个未定义的索引” 我的问题是,当点击提交按钮时,如何从下拉列表中捕获选择作为变量的名称? (我很抱歉,因为我是HTML和PHP的新手,我只是在这里发帖,因为我在其他地方找不到简单或明确的答案)

1 个答案:

答案 0 :(得分:1)

问题是您的<input type="submit">不属于同一表单。因为您为提交按钮创建了一个独立的表单,所以它只提交该独立表单。此独立表单未设置name属性,因此您的$_REQUEST['form1']确实未定义。

要解决此问题,只需使用一个表单,其中包含选择和提交:

echo '<form align="left" top="200" action="page2.php" method="post">
        <p>Select an owner:</p>
        <select top="200" name="form1" id="form1">';

foreach($values as $v){
    echo '<option value="'.$v['LastName'].'">'.$v['LastName'].'</option>';
}

echo '</select>
      <input type="submit" value="Submit">
      </form>';

$form1 = $_POST['form1'];
if($form1){ // if there is data submitted to the page
    echo '<p>$form1</p>';
}

请注意,您也不应该使用分隔HTML属性的分号;我删除了这些。您还真的想要使用$_POST而不是$_REQUEST,因为您不希望$_GET访问。我也改变了这一点。

您也可以考虑从标记中提取逻辑,并将两者分开。