调用ajax响应以在自定义对话框回调函数中使用

时间:2014-01-15 16:13:37

标签: javascript php ajax

AJAX w / bootbox自定义对话框

var checkRequApprove =  function ()
    { 
      $.ajax({
      url: '127.0.0.1/ProgVsProg/main/checkApproveReq',
      success:function(output){
        if(output==false){
         console.log(output);
         stopTime = setTimeout(checkRequApprove, 1000); 
            }
        else {
              bootbox.dialog({
              message: (output),
              title: "Request Accepted",
              buttons:
               {
                  success: {
                  label: "Approve",
                  className: "btn-success",
                  callback: function() {
                  var username = (output);
                       $.ajax({    
                          "type" : "POST",
                          "url" : "finalApprove",
                          "data" : {'username' : username},
                          success: function(data){
                            $('#example').html(data);
                          }
                     });
                  }
                  }, 
              }
              }); 
         stopCounter();
            }
    }
  });
}
    stopTime = setTimeout(checkRequApprove,1000);

控制器

public function checkApproveReq(){
$id = $this->session->userdata('userID');
$requApprove = '1';
$check = $this->lawmodel->checkRequApprove($id,$requApprove);
foreach($check as $row){
   if($row->requApprove == '1')
    {
       reqID = $this->lawmodel->getID($row->requestedID);
       foreach($reqID as $row){
       echo $row->username;
      }
    }
    else
        echo false;
    }
}
public function finalApprove(){
    $username = $this->input->post('username');
    $userID = $this->session->userdata('userID');
    $id = $this->lawmodel->getUsernameID($username);
    $data= array(
            "challApprove" => "1",
        );
    $this->lawmodel->finalUpdateRequest($userID,$id,$data);

    echo "Accepting Please Wait!";
}

我有这个问题我不知道我是否正确的做法.. 我希望checkRequApprove上的ajax响应将在自定义对话框成功按钮callback: function()中回调。我在checkRequApprove上添加了响应成功按钮output中的var username,以便能够在callback: function中回拨。

根据我下面的代码,似乎data:{'username' : username},没有得到var username中的值,使得成功函数不返回任何输出。

请帮助......在ajax中新... :(

1 个答案:

答案 0 :(得分:0)

FIRST:您的成功函数收到的“output”var是整个jqXHR-Object。 您正在搜索的是responseText - 在您的情况下为output.responseText

SECOND:在您的服务器文件中,您回复真实。 由于这是一个HTML响应,因此它是一个String。所以你必须检查 if( output === 'FALSE')


BTW:您的示例中还有一些错误。但我不会深入到这里。 我建议您更好地了解jqXHR-Object和工具以检查浏览器xhr-requests。像firebug或native chrome devleoper工具栏