jquery序列化和多选下拉列表

Ami*_*abh 19 javascript forms jquery webforms

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

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

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

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

<select size="5" id="factoryUsers" name="factoryUsers" multiple="multiple">

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

factoryUsers=5&factoryUsers=23&factoryUsers=11

将select更改为数组类型也无济于事 factoryUsers[]

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

TJH*_*vel 15

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


Jor*_*dan 11

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

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

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


小智 7

您只需要将name ="factoryUsers"更改为name ="factoryUsers []"PHP会将其视为数组.


Fer*_*ÇER 6

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

<select size="5" id="factoryUsers" name="factoryUsers[]" multiple="multiple">
Run Code Online (Sandbox Code Playgroud)

谢谢...