Ich möchte eine einfache AJAX-Funktion lokal implementieren, mit der ich Knotentitel bereits vorhandener Knoten automatisch vervollständigen kann, wenn der Benutzer sie eingibt. Zu diesem Zweck benötige ich die Fähigkeit, eine API zu haben, mit der ich nach Knotentiteln suchen kann. Das Problem ist, dass bei der Ausgabe von RAW-JSON diese von Tags umgeben ist. Also, egal was ich tue, ich bekomme immer ...
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
Ich habe versucht, eine benutzerdefinierte Seitenvorlage zu implementieren, die nur den Inhalt ausgibt und die gleichen Ergebnisse liefert. Hier ist, wie ich das gerade mache, in meiner Moduldatei ...
<?php
/**
* Implementation of hook_menu()
*/
function content_relation_menu() {
$items = array();
$items['api'] = array(
'title' => 'Search',
'page callback' => 'content_relation_get',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function content_relation_get($term = '') {
drupal_add_http_header('Content-Type', 'application/javascript; utf-8');
$var = json_encode(
db_query("SELECT nid,title FROM {node} WHERE title LIKE :title LIMIT 5", array(":title" => $term.'%'))->fetchAll()
);
echo $var;
exit(0);
}
Wie kann ich JUST raw JSON zurückgeben?
drupal_json_output
Funktion. Beispiele finden Sie hier oder dort .