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中新... :(
答案 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工具栏