将所有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。