簡體   English   中英

為什么控件沒有從PHP文件返回到AJAX成功函數?

[英]Why the control is not getting returned from PHP file to AJAX success function?

我的網站使用的是PHP,JavaScript,AJAX。

我只在下面放置必要的代碼。

JS代碼(AJAX功能代碼):

$("#btn_add_event").click(function(){

    var strSeriaze = $( "#formAddEvent" ).serialize();
    url = $( "#formAddEvent" ).attr('action');
    $("#btn_add_event").attr('disabled', 'disabled');
    $("#addEventErrorMsg").html('');
    $.ajax({
        url: url,
        type: "POST",
        data:  {postData:strSeriaze},
        beforeSend: function(){
            $('#loader-icon').show();
        },
        complete: function(){
            $('#loader-icon').hide();
        },
        success: function(data){
        //Control is not returning here on success from PHP file
            $('#loader-icon').hide();

            if(data == "Success")
            {
                $("#myModal-add-event").modal('hide');
                $("#myModal-add-event").hide();
                window.location.href = site_url + "event_index.php";
                return false;
            }
            else
            {
                $("#btn_add_event").attr('disabled', false);
                $("#addEventErrorMsg").show();
                $("#addEventErrorMsg").html(data);
            }
        },
        error: function(){}
    });   
  }) 

我嘗試調試該調用可以完美地處理PHP文件的問題,在該處編寫的邏輯也可以正常工作,但是控件未返回到js文件(即AJAX成功函數)。 反過來,我無法執行成功函數內編寫的代碼。

請更正我在代碼中犯的錯誤。

以下是執行后所需的PHP代碼,可以將控件返回到js文件(即AJAX成功功能),但沒有發生。

if($ret) {
  $eventAddResultArr = $objEvent->GetResponse();

  if($eventAddResultArr['msg'] == 'Success') {
    echo "Success";
    exit;
  //From here it is expected to return the control to js file's AJAX success function but it's stopping execution here only
  } else {
    $errMsg = "";
    foreach($eventAddResultArr['msg'] as $key => $err_msg) {
      $errMsg .= $err_msg."<br>";
    }       
    echo $errMsg;
    exit;
  }
}

注意:我在代碼中添加了注釋,以使您更好地理解我的問題。 不過,如果您需要有關我所面臨問題的更多信息,請讓我知道。

謝謝。

如果您不在ajax中使用DataType,則可以遵循以下步驟:

在PHP中

使用echo true; 而不是echo "Success";

在Ajax中,請檢查:

if(data == true) {
//your code
}

只需移開出口即可; 那會是問題,尤其是沒有必要。

暫無
暫無

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

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