将所有select值传递给php

将所有select值传递给php,php,jquery,Php,Jquery,我有一个选择框: <select name="sub_selected" class="bmarks" id="sub_selected" style="width:400px" size="5"> <option value="1">first value</option> <option value="2">second value</option> <

我有一个选择框:

<select name="sub_selected" class="bmarks" id="sub_selected" 
style="width:400px" size="5">
            <option value="1">first value</option>
            <option value="2">second value</option>
            <option value="4">other vale</option>
                                  </select>
我想将select box的所有值提交给php以存储在mysql中,最好采用这种格式(1,2,4)


谢谢

如果你真的想要所有的,那就不要那样做。在PHP中使用与显示select选项相同的方法获取它们。

如果确实需要所有选项,请不要这样做。在PHP中使用与显示选择选项相同的方式获取它们。

我对jquery了解不多,但在我看来,如果jquery只提交包含
标记的表单,那么您可能完全可以在HTML级别解决问题。
的行为方式是,浏览器将只提交选定帖子中的数据。如果选项未突出显示,则不会在
帖子中发送到服务器

您可以通过以下方式解决此问题:;首先,您的
需要
multiple=“multiple”
属性,以便可以选择多个元素。其次,将
selected=“selected”
属性添加到每个
标记中。最后,如果您不希望用户在提交表单之前取消选择任何选项,请将
disabled=“disabled”
属性添加到
标记中


更新:您可能还希望将
name=“sub_selected”
更改为
name=“sub_selected[]”
,以便在PHP端以数组形式接收值。您需要将jquery对
sub\u selected
的引用调整为
sub\u selected[]

我对jquery了解不多,但在我看来,如果jquery只提交包含
标记的表单,您可能完全能够在HTML级别解决问题。
的行为方式是,浏览器将只提交选定帖子中的数据。如果选项未突出显示,则不会在
帖子中发送到服务器

您可以通过以下方式解决此问题:;首先,您的
需要
multiple=“multiple”
属性,以便可以选择多个元素。其次,将
selected=“selected”
属性添加到每个
标记中。最后,如果您不希望用户在提交表单之前取消选择任何选项,请将
disabled=“disabled”
属性添加到
标记中


更新:您可能还希望将
name=“sub_selected”
更改为
name=“sub_selected[]”
,以便在PHP端以数组形式接收值。如果您确实想使用jquery执行此操作,则需要将您的jquery引用的
sub\u selected
调整为
sub\u selected[]
,以下是简单/正确的方法:

// I'm not sure what the '#prop_tile' element is so I didn't 
// include it for this example
var all_vals = new Array; 
$('#sub_selected option').each(function() {
    all_vals.push($(this).val());
});
$.post('add_process.php', { stages:all_vals }, function(html) {
    $('div.saving').hide();
    $('div.success').fadeIn();
},'html');
在接收端,您可以执行以下操作:

<?php
if(isset($_POST['all_vals'])) {
    $all_vals = $_POST['all_vals'];
    // $all_vals is now an array = [1,2,4]
}
?>


注意:如果你能透露更多关于为什么要这样做的细节,那就太好了,因为从表面上看,这似乎是一件愚蠢的事情。

如果你真的想用jquery这样做,下面是一个简单/正确的方法:

// I'm not sure what the '#prop_tile' element is so I didn't 
// include it for this example
var all_vals = new Array; 
$('#sub_selected option').each(function() {
    all_vals.push($(this).val());
});
$.post('add_process.php', { stages:all_vals }, function(html) {
    $('div.saving').hide();
    $('div.success').fadeIn();
},'html');
在接收端,您可以执行以下操作:

<?php
if(isset($_POST['all_vals'])) {
    $all_vals = $_POST['all_vals'];
    // $all_vals is now an array = [1,2,4]
}
?>


注意:如果你能透露更多关于你为什么要这样做的细节,那就太好了,因为从表面上看,这似乎是一件愚蠢的事情。

只是为了扮演魔鬼的代言人,我可以问一下为什么吗?如果选择了所有的值,而不是通常会提交的一个值,脚本会做什么?我想问一下为什么?如果选择了所有的值,而不是通常提交的一个值,脚本会做什么?@R.Bemrose:实际上,如果select标记的name属性以[]结尾,select元素将作为数组进入PHP。@R.Bemrose:实际上,如果select标记的name属性以[]结尾,则select元素将作为数组进入PHP。