如何使用javascript/jquery调用CodeIgniter控制器中的函数?

kyxcudwk  于 2022-12-07  发布在  Java
关注(0)|答案(1)|浏览(117)

我一直在试图弄清楚如何从javascript/jquery脚本中调用控制器中的函数。函数名为do_search,我需要从视图中的脚本调用它。它需要在else条件中调用。我在互联网上找到的都是使用 AJAX ,但无论如何我都会将用户转到一个新页面,所以我只需要调用函数。
我想提前感谢你阅读这篇文章,最重要的是感谢你的回复。

控制器

<?php
class Test extends CI_Controller {

    public function __construct() {

        parent::__construct();

    }

    public function index() {

        $this->load->view('test_view');

    }

    public function do_search() {
        <!-- Implementation of search query to the DB -->
        $this->load->view('search_results_view');
    }
}

检视

<body>
    <form>
        <div id="navigation_bar">
            <div id="search">
                <form>

                    <div id="do_search_btn" class="menu" style="display: none;">
                        <p id="center">Do Search</p>
                    </div>

                    <div id="search_field" class="menu" style="display: none;">
                        <input type="text" name="search_field_input" id="search_input" value="Type in here">
                    </div>

                </form>
            </div>
        </div>
        <script type="text/javascript">

                $( "#do_search_btn" ).click(function() {

                    var input = $("[name='search_field_input']").val();

                    if(input ==""){
                    $("[name='search_field_input']").val("Enter search 1st");

                    }
                    else if(input=="Type in here")
                    {
                        $("[name='search_field_input']").val("Enter search 1st");
                    }
                    else if(input=="Enter search 1st")
                    {
                        $("[name='search_field_input']").val("Enter search 1st");
                    }
                    else {
                    <!-- CALL THE FUNCTION FROM THE CONTROLLER HERE PLEASE -->
                    }
                });
        </script>
    </form>
</body>
ddrv8njm

ddrv8njm1#

既然你使用的是jQuery,那么使用 AJAX 调用控制器中的函数就很简单了。

if(input ==""){
   $("[name='search_field_input']").val("Enter search 1st");
}
else if(input=="Type in here")
{
   $("[name='search_field_input']").val("Enter search 1st");
}
else if(input=="Enter search 1st")
{
   $("[name='search_field_input']").val("Enter search 1st");
}
else {

   $.ajax({
            type:'POST',
            url:'test/do_search',
            data:{'search':input},
            success:function(data){
                $('#resultdiv').html(data);
            }
        });
}

在控制器中,您可以访问发布的数据,如下所示:

public function do_search() {
$search = $this->input->post('search');
<!-- Implementation of search query to the DB -->
$this->load->view('search_results_view');
}

#resultdiv只是一个<div>,如果需要,您可以将搜索结果放入其中。

相关问题