我有一个动态生成的复选框列表。 EXP:
<input class="cb1" var1="1" var2="2" var3="3" type="checkbox" /><label>Checkbox1</label>
对于每个选中的复选框,我尝试将'var1','var2'和'var3'的$ .post值设置为php文件'data.php'。
我不知道该怎么做。
答案 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
}