AJAX + PHP с помощью jQtouch и drupal - PullRequest
       3

AJAX + PHP с помощью jQtouch и drupal

0 голосов
/ 26 октября 2010

Я работаю на сайте drupal, который использует jQtouch (для iphone), и пытаюсь выполнить поиск, который не перезагружает сайт.Я думаю, что часть javascript / ajax не работает.У меня возникли проблемы с определением, действительно ли поступают данные из php-файла, на данный момент работает только js, которая очищает результаты поиска.Очевидно, что в jQtouch есть ajax, встроенный во все формы или что-то в этом роде.У кого-нибудь есть какие-нибудь интересные комментарии, которые могут мне помочь?Кстати, я впервые использую ajax и javascript

pensumsearch.php: <pre><code> $search = $_GET["search-text"]; $result = db_query("SELECT nid FROM {node} WHERE title LIKE '%s' AND type = 'product_collection'", $search.'%'); $noder = array(); while ($record = db_fetch_object($result)) { $noder[] = $record; } $matches = array(); foreach($noder as $row) { $node = node_load($row->nid); $res = db_query("SELECT tid FROM {term_node} WHERE nid ='$node->nid'"); $termlink = (db_fetch_object($res)); $matches[] = $node->title; } header('Content-Type: application/json'); print json_encode($matches); ?>

search.js:

(function($){</p> <pre><code> $(function(){ $("#form").submit(function(event, info) { var text = $("input[id=search-text]", this); text.blur(); var results = $("#search-results", this).empty(); results.append($("<li>", { "class": "arrow4", text: 'Resultater "' + text.val() + '"' })); $.get("pensumsearch.php", { value: text.val() }, function(data) { $('#search-results').html(data); alert("Data Loaded: " + data); } ); return false; }); });

}) (jQuery);

1 Ответ

1 голос
/ 26 октября 2010

Похоже, что вы используете автономный скрипт php, что означает, что Drupal не должен загружаться, и вы в принципе не можете использовать любую из функций Drupal, если вы уже не загружаете Drupal без отображения.Если вы запускаете Drupal, нет особого смысла в использовании отдельного PHP-скрипта.

Другое дело, что вместо этого вы должны поместить % для подобного запроса прямо в sql:

WHERE title LIKE '%s%' ... $search

Другое дело, что вы делаете:

$('#search-results').html(data);

Что должно работать, но не должно быть красиво, поскольку вы вставляете строку в кодировке json.Вы можете использовать $.getJSON, который преобразует данные в формат json.

Вы также можете рассмотреть возможность отладки вашего php-скрипта или использовать firebug, чтобы увидеть, получите ли вы ожидаемый результат.

...