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?
nodes
ajax
javascript
json
Rybosom
quelle
quelle
drupal_json_output
Funktion. Beispiele finden Sie hier oder dort .Antworten:
Für Drupal 6 können Sie drupal_json verwenden
Ändern Sie es für Drupal 7, um drupal_json_output zu verwenden
Es wäre wahrscheinlich auch sicherer, die Abfrage zu bereinigen, Fehler zu überprüfen usw., anstatt nur zu versuchen, das Ergebnis zurückzugeben.
quelle
Ich habe gesehen, dass für Drupal 8 keine Antwort bereitgestellt wurde.
Verwenden Sie den folgenden Code, um JSON in Drupal 8 zu verarbeiten:
Sie können mehr darüber lesen Sie hier
quelle
Hier ist ein reales Beispiel für Drupal 8
https://github.com/npinos/drupal8-greenhouse
Beinhaltet Controller und Routing
Dieser Code gibt eine Knotenzahl im json-Format zurück, die als Endpunkt verfügbar gemacht wird
quelle