簡體   English   中英

通過jQuery Ajax同時發布數組和表單數據時出現問題

[英]Issue while posting Array and Form data together through jQuery Ajax

我一直在嘗試將Array和Form數據一起發布,但似乎我遇到了JavaScript錯誤。 當我嘗試發布僅數組數據而不添加表單數據時,它工作正常。

我有一個下拉選擇框和幾個復選框。 我想將SelectBox數據和CheckBox數據一起發布,所以我將CheckBox數據保存到數組中,因為它是多個Select CheckBox。

在下面的代碼中,我需要解決此問題

data: datasel+"&id="+$("#member_id").val(), //Error in this line only. To be Fixed!!

這是完整的代碼

<script>
$(document).ready(function(){
    $("#err").css('display', 'none', 'important');
     $("#submit_issueBook").click(function(){
         //Creating Array and adding data
        var datasel = { 'selector[]' : []};
        $(":checked").each(function() {
          datasel['selector[]'].push($(this).val());
        });

        $.ajax({
            type: "POST",
            url: "includes/issue_book.php",
            //data: "submit_addMember="+$("#submit_addMember").val(),  <-- Default format for sending post data
            data: datasel+"&id="+$("#member_id").val(),
                if($.trim(html)=='true'){
                    $("#err").addClass("alert alert-success err-inline");
                    $("#err").html("<strong>Member details updated Successfully</strong>");
                    window.location="<?php basename($_SERVER['PHP_SELF']); ?>";
                }
                else{
                    $("#err").addClass("alert alert-danger err-inline");
                    $("#err").html("<img src='images/caution-icon.png' />"+$.trim(html));
                }
           },
           beforeSend:function()
           {
                $("#err").css('display', '-webkit-inline-box', 'important');
                $("#err").addClass("err-inline");
                $("#err").html("<img src='images/loading.gif' /> Loading...")
           }
        });
        return false;
    });
});
</script>

捕獲此數據的PHP代碼是

if( isset( $_POST['selector'] ) )
{   $id=$_POST['id'];
    $data=$_POST['selector'];
    for ( $i=0; $i < count( $data ); $i++ )
    {
        //Some SQL query
    }
}

任何幫助,將不勝感激。 謝謝 :)

您正在將json與數據中的獲取字符串混合。 當您擁有datasel對象時,只需向其添加id鍵和值。 首先刪除那些方括號,僅需要以html形式作為名稱:

var datasel = { 'selector' : []};

然后在循環中:

datasel['selector'].push($(this).val());

after循環將id鍵/值對添加到datasel對象:

datasel.id = $("#member_id").val();

然后在ajax中發送此json就足夠了:

data: datasel,

首先,為什么將DOM操作代碼放入ajax調用設置中? 試用以下代碼:

$.ajax({
    type: "POST",
    url: "includes/issue_book.php",
    //data: "submit_addMember="+$("#submit_addMember").val(),  <-- Default format for sending post data
    data: datasel+"&id="+$("#member_id").val(),
    beforeSend:function()
    {
        $("#err").css('display', '-webkit-inline-box', 'important');
        $("#err").addClass("err-inline");
        $("#err").html("<img src='images/loading.gif' /> Loading...")
    }
});

我在這里所做的是刪除我之前提到的這段代碼(因此您應該將其放在所需的位置),然后將beforeSend放入它所屬的ajax設置內:

希望它會對您有所幫助。

暫無
暫無

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

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