为啥在提交表单后,来自选择控件的选中元素的值没有出现在 $_POST 数组中? [复制]

Posted

技术标签:

【中文标题】为啥在提交表单后,来自选择控件的选中元素的值没有出现在 $_POST 数组中? [复制]【英文标题】:Why the values of checked elements from select control are not coming in $_POST array after submission of form? [duplicate]为什么在提交表单后,来自选择控件的选中元素的值没有出现在 $_POST 数组中? [复制] 【发布时间】:2014-06-11 05:47:24 【问题描述】:

我有以下 html 代码:

<form action="rebates.php" role="form" method="post">
<select id="example28" multiple="multiple" name="applicable_states">
    <option value=""  selected='selected'>Select Unit</option>
    <option value="1" >Alabama</option>
    <option value="2" >Alaska</option>
    <option value="3" >Arizona</option>
    <option value="4" >Arkansas</option>
    <option value="5" >California</option>
 </select>
<button type="submit" class="btn btn-primary">Preview</button>
</form>

选择控件的JQuery代码如下:

/*jQuery Code*/
 $(document).ready(function() 
    window.prettyPrint() && prettyPrint();
     $('#example28').multiselect(
         includeSelectAllOption: true,
         maxHeight: 150
     );
 );

我使用了 Bootstrap 的 js 和 css(多选和美化) 来实现这一点。我的问题是在$_POST arrayoe rebates.php 提交表单后,我没有得到检查元素的值。有人可以在这方面帮助我吗?提前致谢。当我从选择控件中检查一些值并提交表单时,我得到了$_POST 数组,如下所示:

Array
(
 [applicable_states] => 11
 [multiselect] => 11
)

为什么会这样? rebates.php中的代码如下:

<?php
print_r($_POST); die;
?>

【问题讨论】:

【参考方案1】:

PHP 需要知道它是一个数组。所以你需要更改选择的名称。

name="applicable_states[]"

【讨论】:

我尝试了你的想法。将选择控件的名称更改为适用的状态[],但不幸的是它不起作用。 有什么变化吗?你的$_POST现在是什么样子的? @它根本没有改变。看起来都一样。 你还有什么想法吗?

以上是关于为啥在提交表单后,来自选择控件的选中元素的值没有出现在 $_POST 数组中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

php中按钮怎么提交数据到数据库中?

JS表单效验

一道有关ASP提交表单的问题,不知道为啥提交后,后是收不到表单的值

为啥ASP.net中动态控件在刷新后不能

ZF2 表单验证来自选择的值,即使发送了无效值

HTML5 新特征:新表单元素属性