jquery序列化和多选下拉列表

我一直在使用jquery serialize()函数来序列化表单的值并通过ajax提交它

例如,如果表单名称和id是factoryUsers

var data=$("#factoryUsers").serialize();

现在这适用于具有文本字段,文本区域,简单下拉等的表单。但是当我有多个下拉列表时,事情就会出错,例如,如果我有一个类型的下拉列表

序列化不再正常工作。 所以,如果我选择3个用户,我会得到一个查询字符串

factoryUsers=5&factoryUsers=23&factoryUsers=11

将select更改为数组类型对factoryUsers[]

任何想法或帮助如何正常工作将是伟大的。

您上面描述的字符串输出是通过HTTP为具有相同名称的表单提交多个值的正确方法,因此jQuery正常工作。 由您决定如何在服务器端处理它,这取决于您使用的语言。

如果你使用PHP,这可能会有所帮助: http : //bytes.com/topic/php/answers/12267-how-php-_post-gets-multiple-values-html-form

你能告诉我们你用的语言是什么吗?

尝试将select的名称更改为factoryUsers[] 。 这样你就可以在你的后端循环它。

您只需将name =“factoryUsers”更改为name =“factoryUsers []”PHP将把它视为数组。

试试用val()来获取价值

 data='factoryUsers=' + $("#factoryUsers").val(); 

它会以逗号分隔给你的值。

factoryUsers = 1,2,4

如果此项目是您的表格之一。 然后尝试添加序列化的项目结束的值。 例:

 data= f.serialize() + '&factoryUsers=' + $('#factoryUsers').val(); 

由于项目在请求中写入两次,因此最后一个值在控制器中有效。

您可以使用PHP函数

 parse_str($_POST) 

这个函数似乎是一个提取函数。 运行此命令后,您可以访问名为$factoryUsers的var,此var是一个数组$factoryUsers[n]

您的元素名称必须是数组类型factoryUsers[]更改您的代码:

  

谢谢…