如何从JavaScript函数调用PHP函数来访问数据库

时间:2010-10-29 01:05:38

标签: php javascript codeigniter

如何调用与JavaScript函数不同的PHP函数?

我有一个JavaScript函数,可以从onclick函数中获取变量。该变量是一个id,我将用它从MySQL数据库中检索数据。然后将该变量传递给PHP函数,该函数将访问数据库以获取数据并返回到我的JavaScript函数进行显示,但它似乎不起作用。我怎样才能让它发挥作用?我正在使用CodeIgniter PHP。

这是代码。

JavaScript代码位于名为divUpdate.php的其他文件中。

<script type="text/javascript">
    function changeDiv(venueID){
        //retrieveData(venueID) is a PHP function from venue_model.php
        var dest = retrieveData(venueID);
        document.getElementById('venue_description').innerHTML=dest;
    }
</script>

--- onclick函数调用上面的JavaScript代码。 ----

<li><a href="#self" class="menulink" class=&{ns4class};
                    onClick="changeDiv(\''.
                    $venue_details->VenueID.
                   '\')">;

---从上面的JavaScript代码调用函数retrieveData。这是在模型中(CodeIgniter)。 -

function retrieveData($venueID){
    $query = $this->db->query("SELECT * FROM venue WHERE VenueID = '$venueID' ");
    echo $query;
}

2 个答案:

答案 0 :(得分:2)

使用已建议的Ajax。使用jQuery,您可以轻松修复此问题。

您需要创建一个控制器来访问您的Ajax调用。 我就这么简单地创建了这样的Ajax控制器:

<?php
    class Ajax extends Controller
    {
        public function index()
        {
            $this->output->set_output("This is the AJAX Controller");
        }

        public function get_venue_description( $venueId )
        {
            $this->load->model('yourmodel');
            $data = $this->yourmodel->retrieveData($venueId);
            $this->output->set_output($data);
        }
    }
?>

然后你的JavaScript代码在实现jQuery之后应该是这样的:

<script type="text/javascript">
    function changeDiv(venueID)
    {
        $.get('/ajax/get_venue_description/' + venueId, function(data) {
            $('#venue_description').html(data);
        });
    }
</script>

我没有测试过,但我希望你明白这个想法。

答案 1 :(得分:0)

您正在寻找的是“AJAX” - 尝试在Google上搜索教程。此外,通过使用jQuery等JavaScript库,您会发现执行AJAX请求要容易得多。

这是jQuery AJAX函数: http://api.jquery.com/jQuery.ajax/