Pregunta

Estoy trabajando en un sitio de Drupal que utiliza jQtouch (para iPhone), y estoy tratando de hacer una búsqueda eso no vuelva a cargar el sitio. Creo que el Javascript / Ajax de trabajo isnt parte. Im teniendo problemas para encontrar si los datos del archivo PHP es en realidad a través comming, por el momento sólo los js que vacía la de resultados de búsqueda está funcionando. Apperently jQtouch ha construido ajax en todas las formas o algo así. ¿Alguien tiene alguna comentarios interesantes que me podrían ayudar? por cierto esta es la primera vez im usando ajax y javascript

pensumsearch.php:

    $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($){

    $(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);

¿Fue útil?

Solución

Parece que está utilizando un solo script php soporte, lo que significa que no se debe Drupal Bootstrapped y que, básicamente, no se puede utilizar cualquiera de las funciones de Drupal, a menos que ya bootstrap en Drupal sin mostrar. Si lo hace de arranque Drupal, no hay mucho sentido en el uso de una sola escritura de PHP soporte.

Otra cosa es que usted debe poner el % de similares consulta directamente en el lugar de SQL:

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

Otra cosa es que usted está haciendo:

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

¿Qué debería funcionar, pero no debe ser bastante ya que es una cadena JSON codificado que va a insertar. Es posible que el uso de considder $.getJSON que convertir los datos en formato JSON.

También podría considerar la depuración de script PHP, o el uso de Firebug para ver si se obtiene el resultado esperado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top