0

我在我的应用程序中使用 codeigniter,并且有一个运行良好的 jquery post 函数。

$.post('getticketstacktype', {ticketnumber:ticketnumber},function(result) {
alert(result);
}

然后我在另一个编辑页面上使用完全相同的发布功能。此页面预填充了 PHP 并且可以正常工作。

我用同一个帖子打电话给我的控制器,我检查了ticketnumber值是否正确

$.post('getticketstacktype', {ticketnumber:ticketnumber},function(result) {
alert(result);
}

它调用的控制器函数是:

function getticketstacktype(){    
    if (isset($_POST['ticketnumber'])){
        $ticketnumber = $_POST['ticketnumber'];            
        $data = $this->wos_model->getticketstacktype($ticketnumber);
        $this->output->set_content_type('application/json')->set_output(json_encode($data));
        }
    }

现在它可以正常工作,结果是“7”,但相反,在我的编辑页面上,它正在返回我呈现的整个视图页面:所以<html><head>......</html> hundereds of lines)

我无法弄清楚为什么我的整个页面在另一个视图中工作时作为结果返回到 jquery 帖子。

我还验证了两个视图的帖子信息与 firebug 相同。

有什么建议吗?一如既往地感谢。

4

2 回答 2

1

这通常发生在后端发生致命错误时。当 PHP 发生致命错误时,它会构建一个页面来显示包含在框中的一些错误消息。jQuery 尝试解释为有意义的数据,但它失败了。如果您在 Firebug 或 Google Chrome 开发工具中看到此响应,您实际上可以看到该页面可以呈现。

  1. 使用 Firebug 或 Google Chrome Dev 工具来追踪从服务器发回的结果
  2. 确保您的后端没有错误
于 2014-04-17T08:53:59.450 回答
0

我认为你需要这个:

在您的标头中定义脚本标记:

var base_url = '<?php echo base_url() ?>'; //here we keep the base url in a variable to use in our js files

然后js file在上面调用你的 ajax 的行下面包含,这样我们就可以访问上面的变量。

现在你ajax function需要像这样改变:

$.post(base_url+'controller_name/getticketstacktype/', {ticketnumber:ticketnumber},function(result) { //here if you see the absolute path to the funciton is given
    alert(result);
}

你还需要检查你的萤火虫net panelconsole如果你有任何错误。祝你好运。:D

于 2014-04-17T08:58:42.683 回答