将所有选择值传递给php

时间:2009-10-09 17:04:56

标签: 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>
            <option value="4">other vale</option>
                                  </select>

我想将所有值传递给php。

我编写以下代码但不起作用:

$('#sub_selected').each(function(i, selected){
        foo[i] = $(selected).val();

                var title     = $('#prop_tile').attr('value');
                $.ajax({
                type: "POST",
                url: "add_process.php",
                data: "title="+ title +"& stages="+ foo,
                success: function(html){
                if (html==1){
                $('div.saving').hide();
                $('div.success').fadeIn();
                }else {
                $('div.saving').hide();
                $('div.nosuccess').fadeIn();
                }

                }
                });

我想将选择框的所有值提交到php以存储在mysql中,最好采用这种格式(1,2,4)。

由于

3 个答案:

答案 0 :(得分:4)

我对jquery了解不多,但在我看来,您可以纯粹在HTML级别解决您的问题,假设您的jquery只是提交包含您的<select>标记的表单。 <select>的行为方式是浏览器只会在所选的帖子中提交数据。如果选项未突出显示,则不会将其发送到POST

中的服务器

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

更新:您可能还想将name="sub_selected"更改为name="sub_selected[]",以便您可以在PHP端接收值作为数组。您需要将sub_selected的jquery引用调整为sub_selected[]

答案 1 :(得分:0)

如果你真的想要所有这些,那就不要那样做了。使用PHP获取它们的方式与显示选择选项的方式相同。

答案 2 :(得分:0)

如果你真的想用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]
}
?>

注意:如果你透露更多关于你为什么要这样做的详细信息会很好,因为,皮肤深层,这似乎是一件愚蠢的事情。