Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery ajax函数返回html代码_Php_Jquery_Codeigniter - Fatal编程技术网

Php jquery ajax函数返回html代码

Php jquery ajax函数返回html代码,php,jquery,codeigniter,Php,Jquery,Codeigniter,我使用带有CodeIginter的jquery库,但返回的数据是视图的html代码 它应该返回控制器中方法的输出。以下是我的ajax代码: $("#btn-delete").click(function() { $.ajax({ type: "POST", url: "edit_questions/delete_question", data: { 'q_id': 12 }, dataType: "text", cache: fal

我使用带有CodeIginter的jquery库,但返回的数据是视图的html代码

它应该返回控制器中方法的输出。以下是我的ajax代码:

$("#btn-delete").click(function() {
  $.ajax({
    type: "POST",
    url: "edit_questions/delete_question",
    data: {
      'q_id': 12
    },
    dataType: "text",
    cache: false,
    success: function(data) {
      alert(data);
    }
  });
});
这是我的控制器

<?PHP 
 class edit_questions extends CI_controller{
    var $feed=array();
    public function __construct(){
    parent::__construct();

    $this->load->model("Admin_db_model");
    $this->feed['status']=-1;
    $this->feed['msg']='';
   }
public function index(){



    $this->load->view("edit_questions_view",$this->feed);
}

public function show_questions(){

    $this->feed['q_list']=$this->Admin_db_model->get_question_titles($this-
    >uri->segment(3));

    $this->load->view('edit_questions_view',$this->feed);

}


public function delete_question(){


    echo"تم الحذف ".$this->input->post('q_id')  ;
    }   


}
这是我在警报功能中得到的屏幕截图

尝试此数据类型:html而不是数据类型:text

根据您已经尝试的内容,调试此功能的一些好的第一步是:

确保函数delete_question通过放置 像dieX这样的东西会在它身上留下斑点然后 在警报消息中搜索它

检查浏览器的开发工具右键单击,检查 元素,然后转到网络选项卡,刷新该页面,您的AJAX 请求应该出现在那里。有错误吗

您的web服务器似乎使用HTML进行响应,您只需要一个字符串。标准web服务器不会这样做,除非页面返回错误,即404错误确实随HTML模板一起出现,具体取决于您的配置。由于您的警报框中的文本被截断,我无法确认情况是否如此

如果这不是一般性错误,那么在堆栈中的某个地方,您必须在标记或echo语句之外输出HTML

如果您希望进一步调试,我建议尝试在堆栈中第一个PHP脚本的第一行初始化输出缓冲区,稍后$html=,和

这将捕获PHP向客户端输出HTML的所有尝试,并将它们暂时挂起到缓冲区中。这样,您就可以更容易地找到脚本输出内容的位置。我发现使用输出缓冲区更好地控制客户端接收的数据是一种很好的做法


由于您使用的是PHP框架,一些URL映射可能超出您的控制范围,因此,您可以使用var_dumpdebug_backtrace查找脚本的起始位置。

最好还包括实际脚本的代码。“编辑问题/删除问题”的控制器您的控制器方法在哪里?我的控制器方法只有回显文本,我正在尝试确保它调用正确first@Jeff我添加了控制器问题中没有显示的html中还有什么?例如,它可能是一个404或500通用页面正在发送您的服务器。好的。在动作结束时放出口或模具。也可以使用echoت㶩㶊ذ㷡ف。$this->input->post'q_id';