【问题标题】:How to call PHP functions from a JavaScript function to access a database如何从 JavaScript 函数调用 PHP 函数来访问数据库
【发布时间】:2010-10-29 01:05:38
【问题描述】:

如何调用与 JavaScript 函数位于不同文件中的 PHP 函数?

我有一个从 onclick 函数接收变量的 JavaScript 函数。该变量是一个 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.
                   '\')">;

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

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

【问题讨论】:

  • 搜索“ajax php教程”
  • 当你说它不起作用时,实际上是什么不起作用?
  • 我希望你能在某个地方逃脱 $venueID。
  • stackoverflow上的一些google搜索结果:bit.ly/dh8Uxj
  • 在 divUpdater.php 中调用方法 retrieveData($venueID) 不起作用

标签: php javascript codeigniter


【解决方案1】:

如前所述,使用 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>

我还没有测试过,但我希望你能明白。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多