php - codeigniter 代码中的 Ajax 自动搜索不起作用

标签 php jquery ajax codeigniter

Controller 代码:

public function auto_search() {

    $search_data = $this->input->post('search_data');
    //print_r($search_data);  die();
    $query = $this->search_model->autocomplete($search_data);
    print_r($query);  die();

    foreach ($query->result() as $row):
        echo $row->uid  ;
        echo  $row->name ;
    endforeach; 
}   

JavaScript:

<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
    function ajaxSearch() {

        var input_data = $('#search_data').val();

        $.ajax({
              type: "POST",
              url: "/search/auto_search",
              data: {search_data:input_data},
              success: function(data1) {
              alert(data1);

                if (data1.length > 0) {
                   $('#suggestions').show();
                   $('#autoSuggestionsList').addClass('auto_list');
                   $('#autoSuggestionsList').html(data1);
                }
              }
          });
    }
</script>

当我打印 search_data 时在 Controller 中 print_r($search_data); die(); 我没有得到任何结果。 我认为 ajax 调用没有进入 Controller 请为此提供解决方案

此外,当我回显 Controller 中的查询时 print_r($query) ; 我没有得到任何结果。自动搜索也不起作用。请为此提供解决方案。

最佳答案

我认为是 ajaxSearch 函数没有运行。 你的尝试

public function auto_search()
{

    $search_data = $this->input->post('search_data');
    $query = $this->search_model->autocomplete($search_data);

    if (!empty($query)) {
        foreach ($query->result() as $row) {
            echo $row->uid;
            echo $row->name;
        }
    } else {
        echo '';
    }
}
<script type="text/javascript" src="js/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
    $(function () {
        function ajaxSearch() {

            var input_data = $('#search_data').val();

            $.ajax({
                type: "POST",
                url: "/search/auto_search",
                data: {search_data: input_data},
                success: function (data1) {
                    alert(data1);

                    if (data1.length > 0) {
                        $('#suggestions').show();
                        $('#autoSuggestionsList').addClass('auto_list');
                        $('#autoSuggestionsList').html(data1);
                    }
                }
            });
        }

        // start ajaxSearch
        ajaxSearch();
    });

</script>

谢谢

关于php - codeigniter 代码中的 Ajax 自动搜索不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605243/

相关文章:

php - 使用外部 php 脚本进行检查

php - Laravel 5.2 验证请求 "not-in"未返回自定义消息

php - 从 ajax 调用 PHP 脚本时发生内部服务器错误

javascript - 完成后如何在动态PHP网站上高效实现AJAX

javascript - 将 javascript 数据放入表单中

javascript - 时间表的动态页面

php - 如何使用 Data Mapper 模式延迟加载子对象?

php - 如何从 Paypal 在 ZF2 中设置回调 URL?

javascript - 如何删除上传的图片?

jquery - 使用 jquery 获取输入字段的 id 以传回颜色变化