【问题标题】:Div Refresh without page load using ajax drupal使用 ajax drupal 刷新没有页面加载的 Div
【发布时间】:2015-03-18 12:07:08
【问题描述】:

我想从 db 加载数据并想显示计数示例:message(5)。所以我在 div 中编写了查询。

<?php
    function load()
    {
        echo "<div id='count'>";
        db_select("query is here");
        echo "Message($count);
        echo "</div>";
    }
?>

我想在 Drupal 7 中刷新 count div 而不加载页面。谁能帮我解决这个问题

提前致谢。

【问题讨论】:

  • 您的代码中缺少"

标签: jquery ajax drupal drupal-ajax


【解决方案1】:

如果你已经引用了JQuery,那么你可以使用:

//Some data to pass, if needed in JSON
var form_data ={
    param1 : "hello"
};

$.ajax({
           type: "POST",
           url: "Here is the URL to your method that will call the database",
           data: form_data,

           success: function(data)
           {
                //In from your file or method, return a value to be displayed. It will be in data variable.

               alert(data); //Alerts the value you passed

           }

         });

【讨论】:

  • 知道如何使用 Drupal
【解决方案2】:

由于 PHP 是在服务器上处理的,如果您想通过 PHP 插入一个值,您总是必须重新加载页面。

要通过 ajax 获取,数据更新必须在客户端使用 javascript 完成。

所以把你的 php 代码放在一个文件中,比如 creatediv.php。

然后通过javascript(本例中为jquery)加载它

$("div").load("creatediv.php");

此函数在服务器上执行您的脚本并将返回的文本放入您的 div 中。

【讨论】:

  • 应该是一样的,因为drupal就是cms——写模板的时候可以使用jquery/javascript。
【解决方案3】:

所以,在前端,您可以使用 jQuery,就像上面解释的那样。在 Drupal 方面,制作一些 php 脚本,添加到它的开头 common Drupal bootstarp:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

之后你就可以使用所有的drupal特性了——drupal被初始化了。因此,您可以阅读视图、加载节点等等。生成您需要的任何内容(html、json)并打印出来。

然后您将使用您的 ajax 调用来调用该脚本。您当然可以像往常一样传递参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多