为什么控件没有从PHP文件返回到AJAX成功函数?

时间:2015-12-30 11:32:25

标签: javascript php jquery ajax ajaxsubmit

我在我的网站上使用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;
  }
}

注意:我已在我的代码中添加评论,以便您更好地理解我的问题。如果您需要有关我面临的问题的任何进一步信息,请告诉我。

感谢。

2 个答案:

答案 0 :(得分:3)

如果你没有在ajax中使用DataType,那么你可以遵循:

在php中

使用echo true;代替echo "Success";

在Ajax中,请查看:

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

答案 1 :(得分:0)

只需取下出口;这将是问题,特别是没有必要。