Обновление Div без загрузки страницы с помощью ajax drupal
Я хочу загрузить данные из БД и хочу показать пример подсчета: message(5). Так что я написал запрос внутри div.
<?php
function load()
{
echo "<div id='count'>";
db_select("query is here");
echo "Message($count);
echo "</div>";
}
?>
Я хочу обновить счетчик Div без загрузки страницы в Drupal 7. Может кто-нибудь помочь мне в этом
Заранее спасибо.
3 ответа
Если вы ссылались на 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
}
});
Итак, на внешней стороне вы можете использовать jQuery, как объяснили парни выше. Со стороны Drupal, создайте некоторый php-скрипт, добавьте в его начало общий загрузочный пакет Drupal:
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
После этого вы можете использовать все возможности drupal - drupal инициализируется. Таким образом, вы можете читать представления, загружать узлы, что угодно. Создайте то, что вам нужно (html, json) и распечатайте.
И вы будете называть этот скрипт своим вызовом ajax. Конечно, вы можете передать параметры... как обычно.
Поскольку PHP обрабатывается на сервере, вам всегда нужно перезагрузить страницу, если вы хотите вставить значение через PHP.
Чтобы получить его через ajax, обновление данных должно быть выполнено с помощью javascript на клиенте.
Поэтому поместите свой php-код в один файл, например созданный.php.
Затем загрузите его через JavaScript (в этом примере jquery)
$("div").load("creatediv.php");
Эта функция выполняет ваш скрипт на сервере и помещает возвращенный текст в ваш div.