我对PHP比较陌生。我正在上课并在表格上工作。如果您决定提供帮助,请记住(我是新的和学习的)。 8 - )
这是合约。我有一张表格。我正在使用下拉状态。我已经创建了一个变量来在表单提交后回显。挑战在于变量不会打印。我不知道如何让它发挥作用。如果对于“价值”而言,我认为我需要什么?被分配给变量。
我确实是通过谷歌搜索解决方案,但我认为我没有使用适当的搜索字词来查找我要查找的内容。对于这种形式,我们还没有使用数据库。
<select>
<option id="state" name="state" value="AL">Alabama</option>
<option id="state" name="state" value="AK">Alaska</option>
<option id="state" name="state" value="AZ">Arizona</option>
<option id="state" name="state" value="AR">Arkansas</option>
<option id="state" name="state" value="CA">California</option>
<option id="state" name="state" value="CO">Colorado</option>
<option id="state" name="state" value="CT">Connecticut</option>
<option id="state" name="state" value="DE">Delaware</option>
</select>
现在在这里分配变量:
$state=$_POST['state'];
然后我在这里得到了回音:
echo '<li>State: ' . $state . '</li>';
打印出来时只打印状态:
任何人都可以帮助我理解为什么这不起作用以及如何解决它?
提前感谢您的帮助。如果您需要我的更多信息,请通知我。
答案 0 :(得分:3)
首先,只有<select>
具有name属性,而不是<option>
,从中删除所有属性。
<select name = "state">
具有name属性。<option value = "AL">
具有价值。您也没有发布表格的其余部分,因此不确定这是否正确。
确保它包含POST方法。
I.e。:<form action = "whatever_action_is" method = "post">...</form>
,<select>...</select>
属于表单标记。
action=""
作为自己或action="handler.php"
,是您正在使用的另一个文件或同一个文件;那是未知的。如果您在同一文件中运行HTML和PHP,请使用条件语句。
即:
if(isset($_POST['state'])){
$state=$_POST['state'];
}
else{
echo "Not set.";
}
否则,您可能会收到未定义的索引通知。
id="state"
ID是唯一的,因此您需要为它们提供不同的ID,或者如果您使用CSS,则使用类。 class="state"
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
HTML stickler。
<li></li>
需要<ul></ul>
无序列表标记或<ol></ol>
等。
取决于您要使用的类型。
答案 1 :(得分:2)
<select name="state">
<option value="AL">Alabama</option>
请改变。