我非常简单地使用SQL和PHP来生成选项框。我最初有一个带有大小属性的选择框,不明白为什么提交表单后的$_POST
总是没有设置。最终,我尝试了不带size
属性的方法,并且成功了。为了确认,我回到了我最初想要的选择框,设置了一个size属性,注意到它未能设置$_POST
变量,然后我所做的唯一一件事就是从标记中删除size='10'
,它按预期工作。
这是具有适当属性的代码。
<select name='select_news' size='10'>
<?php
foreach($news_dates_list as $date)
{
echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");
}
?>
</select>
当表单被提交,并且它试图访问$_POST['select_news']
时,它会生成以下错误:
注意:未定义的索引:第310行C:''website''admin''index.php中的select_news。当我只删除"size='10'"部分时,它不会产生错误,并按预期工作。
因此,我只是想确认,当您试图通过$_POST
访问选择框时,选择框中的大小属性会导致选择框出现故障,这是否正确。如果它不应该有这种效果,有人知道是什么原因造成的吗?
不是你的问题的答案,而是改变:
echo ("<option value='".$date['month']."/".$date['day']."/".$date['year']."'>".$date['month']."/".$date['day']."/".$date['year']."</option>");
收件人:
echo "<option value='{$date['month']}/{$date['day']}/{$date['year']}'>{$date['month']}/{$date['day']}/{$date['year']}</option>";
即不使用带有echo的括号,并且使用{}
在不必不断地启动/停止字符串的情况下在带引号的字符串内插入变量。
大小与返回的内容无关。其他一些事情正在改变。我建议两件事:
- 看看生成的soruce代码——也许你在某种程度上把引用搞砸了
- 做
print_r($_RESULT)
,看看有什么
尝试将名称从select_news
更改为select_news[]
,就像您有多个具有相同名称的复选框一样。