使用ajax将复选框值传递给数组php
我需要一些帮助,通过使用ajax将复选框值传递到数组中并检索控制器中的值。以下代码不起作用。我收到错误:“为foreach()提供的无效参数”。 Var_dump给出string(42) "Educator_Classes[]=1&Educator_Classes;[]=3
使用ajax将复选框值传递给数组php
感谢您提供任何帮助。
我的HTML表单输入:
<input type="checkbox" id="Educator_Classes[]" name="Educator_Classes" class="Educator_Classes" value="<?php echo $Class_Number; ?>"/>
我的jQuery:
$("#Send_Invite").click(function() {
var form_data = {
Opportunity_Id: $('#Opportunity_Id').val(),
Educator_Id: $('#Educator_Id').val(),
Educator_Classes: $('#Educator_Classes:checked').serialize(),
ajax: '1'
};
$.ajax({
url: "<?php echo site_url('schedule/update_educator_class'); ?>",
type: 'POST',
data: form_data,
success: function(data) {
$('#response').html(data);
}
});
return false;
})
我的控制器:
function update_educator_class() {
$Educator_Id = $this->input->post('Educator_Id');
$Opportunity_Id = $this->input->post('Opportunity_Id');
$Educator_Classes = $this->input->post('Educator_Classes');
foreach($Educator_Classes as $Educator_Class):
$this->ion_auth_model->update_educator_class($Opportunity_Id, $Educator_Class, $Educator_Id);
endforeach;
}
你必须使用[]
的name属性而不是id
,否则就不能像数组
<input type="checkbox" id="Educator_Classes" name="Educator_Classes[]" class="Educator_Classes" value="<?php echo $Class_Number; ?>"/>
,也是你的jQuery代码可以更简单:
$("#Send_Invite").click(function() {
var form_data = $(this).closest('form).serialize();
form_data['ajax'] = 1;
$.ajax({
url: "<?php echo site_url('schedule/update_educator_class'); ?>",
type: 'POST',
data: form_data,
success: function(data) {
$('#response').html(data);
}
});
return false;
});
要亮相什么传递给$Educator_Classes
您可以这样做:
var_export($Educator_Classes);
var_dump给出'string(24)'Educator_Classes [] = 1&Educator_Classes; [] = 3' – 2014-09-10 15:16:38
序列化整个表单解决了问题!谢谢 – 2014-09-10 17:17:17
很高兴帮助你:)) – 2014-09-10 18:21:44
的解决方案是,你必须采取的name属性的阵列复选框。 像:
<input type="checkbox" id="Educator_Classes[]" name="Educator_Classes[]" class="Educator_Classes" value="<?php echo $Class_Number; ?>"/>
仍然收到相同的错误。 – 2014-09-10 13:54:31
使用这个”/> – chirag 2014-09-10 14:03:19
这就是我正在使用的,结果相同......'”/>' – 2014-09-10 14:58:11
选择像这样的educator_classes'Educator_Classes:$('[id =“Educator_Classes []”]')。serialize()'或'Educator_Classes:$('#Educator_Classes \\ [\\''')。serialize )' – Anton 2014-09-10 13:35:27
@安顿嗯,尝试两个,仍然得到相同的结果。感谢您的快速回复。 – 2014-09-10 13:39:09
啊,我注意到这是你想要的课程。你需要使用类指示符**''''**'$('.Educator_Classes:checked')' – Anton 2014-09-10 13:40:01