Me gustaría implementar una función AJAX simple localmente que me permita completar automáticamente los títulos de los nodos ya existentes a medida que el usuario escribe. Para ese fin, necesito la capacidad de tener una API que pueda buscar en los títulos de los nodos. El problema es que cuando produzco JSON sin formato, viene rodeado de etiquetas. Entonces, no importa lo que haga, sigo recibiendo ...
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
Intenté implementar una plantilla de página personalizada que ya solo genera contenido, que produjo los mismos resultados. Así es como estoy haciendo esto actualmente, en mi archivo de módulo ...
<?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);
}
¿Cómo puedo devolver JUST raw JSON?
drupal_json_output
función. Ver aquí o allá para ejemplos de trabajo.