簡體   English   中英

使用Ajax將PHP復選框值傳遞給數組

[英]Pass checkbox values into an array using ajax to php

我需要一些幫助,以使用ajax將復選框值傳遞到數組中並在控制器中檢索值。 以下代碼不起作用。 我收到錯誤:“為foreach()提供了無效的參數”。 Var_dump給出string(42) "Educator_Classes[]=1&Educator_Classes;[]=3

感謝您的任何幫助,您可以提供。

我的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;
}

解決方案是您必須采用復選框的名稱屬性數組。 喜歡 :

<input type="checkbox" id="Educator_Classes[]" name="Educator_Classes[]" class="Educator_Classes" value="<?php echo $Class_Number; ?>"/>

您必須使用[]作為名稱屬性,而不是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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM