$_POST
在数据库中返回null值。为什么会这样?
<datalist name="countries" class="form-control">
<option value="India">India</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Germany">Germany</option>
<option value="France">France</option>
</datalist>
<?php
if (isset($_POST['countries'])){
$country=$_POST['countries'];
}else{
echo 'no value';
}
?>
答案 0 :(得分:2)
这只是一个正常的表单提交。
<?php
if(isset($_POST['submit'])) {
$country = $_POST['countries'];
echo $country;
}
?>
<form method="POST">
<input list="countries" name="countries" />
<datalist id="countries">
<option value="India">India</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Germany">Germany</option>
<option value="France">France</option>
</datalist>
<input type="submit" name="submit" />
</form>
注意:这是一个相对较新的标记,因此某些浏览器可能不支持此标记。我建议只使用普通
<select>
代码
答案 1 :(得分:0)
您在代码中发布gender
但未定义。尝试将gender
替换为countries
。
if (isset($_POST['countries'])){
$gender=$_POST['countries'];
}else{
echo 'no value';
}
答案 2 :(得分:0)
查看代码后唯一的可能是这个。
if (isset($_POST['countries'])){
$gender=$_POST['countries'];
}else{
echo 'no value';
}
答案 3 :(得分:0)
多个浏览器不支持Datalist标记。这是最近的HTML5标记。如果您使用不支持它的浏览器,它将不会使用表单数据发送值,或者用户放入关联输入字段的值将像输入文本标记一样使用。
此外,我认为您的组件采用POST方式。如果不存在表单或方法是GET或没有(GET是默认值),$ _POST数组不会被填充。
测试此代码。如果它可以使用DataList,那么您的浏览器可能无法使用DataList标记
<?php
if(isset($_POST['submit'])) {
$country = $_POST['countries'];
echo $country;
}
?>
<form method="POST">
<select name="countries">
<option value="India" />
<option value="United States" />
<option value="United Kingdom" />
<option value="Germany" />
<option value="France" />
</select>
<input type="submit" name="submit" />
</form>
我建议使用javascript创建一个带有简单输入的建议框。例如,使用JQuery UI Autocomplete使您的代码与更多浏览器兼容。
在Datalist W3c学校页面中,有一个表格,其中包含该组件的支持。并非所有浏览器都支持它,只有IE版本才支持它。
示例(仅html,php代码相同):
<input name="countries" class="form-control" list="countries_list" />
<datalist id="countries_list">
<option value="India">India</option>
<option value="United States">United States</option>
<option value="United Kingdom">United Kingdom</option>
<option value="Germany">Germany</option>
<option value="France">France</option>
</datalist>