jquery动态$ .post

时间:2012-12-18 12:45:35

标签: jquery

我有一个动态生成的复选框列表。 EXP:

<input class="cb1" var1="1" var2="2" var3="3" type="checkbox" /><label>Checkbox1</label>

对于每个选中的复选框,我尝试将'var1','var2'和'var3'的$ .post值设置为php文件'data.php'。

我不知道该怎么做。

2 个答案:

答案 0 :(得分:1)

你可以使用$('#form')。serialize()如果要序列化所有表单元素,但在你的情况下,你可以使用$()。find()函数来扫描生成的复选框,并使用$ .each迭代发现的每个元素

假设您的复选框保留在ID ='checkbox_conrainter'的div中,并且其名称属性为'checkbox []'

<div id="checkbox_container">
    <input name="checkbox[]" class="cb1" var1="1" var2="2" var3="3" type="checkbox" /><label>Checkbox1</label>
    <input name="checkbox[]" class="cb2" var1="1" var2="2" var3="3" type="checkbox" /><label>Checkbox2</label>
</div>

在javascript部分你可以写:

 var $postData = '';
 $('#checkbox_conrainter').find('input[type=checkbox]').each(function(){
    var $checkbox = $(this); //just for object caching
    if($checkbox).is(':checked')){
        var $checkbox_name = $checkbox.attr('name');
        var $checkbox_val1 = $checkbox.attr('val1'); //you can use loop if you want
        var $checkbox_val2 = $checkbox.attr('val2');
        var $checkbox_val3 = $checkbox.attr('val3');
    }
    $postData +='&'+$checkbox_name+'[val1]='+$checkbox_val1
               +'&'+$checkbox_name+'[val2]='+$checkbox_val2
               +'&'+$checkbox_name+'[val3]='+$checkbox_val3;
});
$.post('data.php',$postData);

在你的php页面中,变量的结构将是这样的

$_POST = Array(
    checkbox[0] => Array(
        [val1] => 1 //val1 value,
        [val2] => 2 //val2 value,
        [val3] => 3 //val3 value
    ),
    checkbox[1] => Array(  //if you have more checkbox
        [val1] => 1 //val1 value,
        [val2] => 2 //val2 value,
        [val3] => 3 //val3 value
    ),
)

cmiiw

答案 1 :(得分:0)

首先将带有id或name属性的标签中的所有复选框括起来。

然后在任何事件或按钮上单击,您可以按

放置值
  $(document).ready(function(){
             $("#input_form").submit(function(){
                 var querystring = $(this).serialize();
                   $.ajax({
                   type: 'POST',
                   url: url,
                   data: querystring,
                   success: success,
                         dataType: dataType
                     });
                 });
        });

并在PHP文件中尝试获取循环中的值

        foreach($_POST as $val){
             //TODO make a query string again for inserting in db etc
        }