如何从php </datalist>中的<datalist>选项中获取项目

时间:2014-07-02 06:01:21

标签: php html5

$_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';
}
?>

4 个答案:

答案 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>