Frage

Im arbeitet an einer Drupal-Website, die jQTouch (für iphone) verwendet und im Versuch, eine Suche zu machen, dass doesnt die Seite neu zu laden. Ich denke, das Javascript / Ajax-Teil ist nicht arbeiten. Im Problem herauszufinden, ob die Daten aus der PHP-Datei tatsächlich stehen vor der Tür durch, im Moment nur die js dass leert die Suchergebnisse funktionieren. Apperently jQTouch hat Ajax in allen Formen oder etwas gebaut. Hat jemand eine interessante Kommentare, die mir helfen könnte? btw ist dies das erste Mal im mit Ajax und 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);

War es hilfreich?

Lösung

Es sieht aus wie Sie einen Stand-alone-PHP-Skript verwenden, was bedeutet, dass Drupal nicht Bootstrap und man kann im Grunde nicht von Drupal-Funktionen verwenden, wenn Sie bereits Drupal Bootstrap ohne zu zeigen. Wenn Sie Bootstrap Drupal zu tun, gibt es nicht viel Sinn, ein Stand-alone-PHP-Skript zu verwenden.

Eine andere Sache ist, dass Sie die % für ähnliche Abfrage direkt in der SQL setzen sollte stattdessen:

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

Eine andere Sache ist, dass Sie tun:

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

Welche funktionieren soll, soll aber nicht recht sein, da es dich um eine json codierte Zeichenfolge ist Du einfügen. Sie könnten mit $.getJSON considder, die die Daten in JSON-Format konvertieren.

Sie auch interessieren könnten PHP-Skript debuggen, oder Verwendung Firebug, um zu sehen, ob Sie die erwartete Ausgabe erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top