Me gustaría implementar localmente una función AJAX simple que me permite autocompletar títulos de nodo de nodos ya existentes a medida que el usuario escribe. Para ello, necesito la capacidad de tener una API que pueda buscar en los títulos de los nodos. El problema es que cuando envío JSON sin formato, viene rodeado de etiquetas. Por lo tanto, no importa lo que hago, me siguen dando ...¿Cómo puedo devolver JSON real utilizando Drupal?
<html>
<head>
</head>
<body>
<pre style="word-wrap: break-word; white-space: pre-wrap;"> {json here}</pre>
</body>
</html>
He intentado implementar una plantilla de página personalizada que sólo produce la salida de contenido ya, que produjo los mismos resultados. Así es como yo estoy haciendo actualmente esto, 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 volver JSON SOLO prima?
De esta manera es "más correcto", pero resulta que esto realmente dio salida a JS sin formato. Gracias de cualquier forma. – rybosome
Me pegaste, simplemente actualicé mi respuesta a ese efecto :) – Clive