Html:对于Select multiple,只提交一个值,但.val()返回两个值的数组

Mad*_*hik 8 html php jquery form-submit multiple-select

渲染页面时,val()使用单个值设置多重选择.例如,$("#my_select_box").val(1); 然后用户在多选框中选择一个附加值.

提交表单时,仅提交新选择的值,而不是先前设置的值.在Firefox中进行调试时,该.val()函数返回两个值的数组(前一个值和新选择的值).为什么会这样?

pba*_*ney 25

如果您使用PHP编程,问题就出在那里.使用多选输入时,PHP要求您在输入名称后面有一对空括号.例如:

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

而不仅仅是

<select name="select" multiple="multiple">
Run Code Online (Sandbox Code Playgroud)

如果您不能或不会这样做(也许您无法访问底层HTML),那么您也可以像这样捕获POST数据:

$data_from_post = file_get_contents("php://input");
var_dump($data_from_post);
Run Code Online (Sandbox Code Playgroud)

你会看到一个你可以使用的字符串:

select=one&select=two&select=three&button=submit
Run Code Online (Sandbox Code Playgroud)


Hal*_*ero 3

好吧,如果没有代码我们就无法确定。但是,当您想要传递多个参数时,您必须在 [ ] 括号中给出该输入的名称值。前任。“name[]”,以便服务器知道实际上有两个值。