Json 如何在使用CI调用ajax后传回html和逻辑信息

Json 如何在使用CI调用ajax后传回html和逻辑信息,json,codeigniter,jquery,Json,Codeigniter,Jquery,我有一个基于CI和jQuery的项目。我有一个网站在搜索我的数据库。它由一个jQueryUI手风琴组成。一部分包含高级搜索的输入字段,另一部分用于显示包含结果的html表 第一部分中的搜索参数使用ajax post发送到服务器。这是由服务器处理的,返回一条html样式的错误消息或一个带有结果的html表(稍后还返回一些其他内容,例如找到了多少结果、花费了多少时间等) 回到客户端,jQuery必须能够区分这两者。最好是能够传输另一个变量“搜索成功”。如果“search_success”(搜索成功)

我有一个基于CI和jQuery的项目。我有一个网站在搜索我的数据库。它由一个jQueryUI手风琴组成。一部分包含高级搜索的输入字段,另一部分用于显示包含结果的html表

第一部分中的搜索参数使用ajax post发送到服务器。这是由服务器处理的,返回一条html样式的错误消息或一个带有结果的html表(稍后还返回一些其他内容,例如找到了多少结果、花费了多少时间等)

回到客户端,jQuery必须能够区分这两者。最好是能够传输另一个变量“搜索成功”。如果“search_success”(搜索成功)为false,则将错误添加到输入字段上方的第一节。否则,html块将显示在第二节中,jQuery将打开第二节

现在我返回的是带有0或1前缀的纯html。第一个字符被jQuery截断,用于区分两个可能的结果。这有点难看

读完这篇文章后,我想用json解决这个问题。 我打算建造像这样的东西

echo json_encode(数组('search_success'=>$search_success,'html'=>$html))

这将有助于数据的良好结构。现在的问题是,我的“html”不是一个简单的php变量,而是一个视图:

<?php 
$template = array('table_open' => '<table id="table" data-url="'.base_url().'">');
$this->table->set_template($template);
$this->table->set_heading($table_header);
echo $this->table->generate($table);
?>

要结束这个话题,答案很简单:

$json['html'] = $this->load->view('myfile', '', true); // 3. param 'true'!
$json['other_stuff'] = $other stuff;
echo json_encode($json);
看。这种方法允许对服务器进行结构良好的响应


一切归功于@koala_dev

您的问题有点模糊-您需要处理什么样的逻辑,以及服务器上的示例html数据是什么?我希望编辑足够澄清这个问题。您是否尝试过在控制器中使用$this->load->view()中的第三个参数作为
$html=$this->load->view('myfile','',true)返回视图作为数据这是在最末尾记录的,很简单!我不知道这个小细节。解决了整个问题。如果你把它作为答复提交,我会接受的。