Autor Zpráva
Andrej.B
Profil
Zdravim,

mam funkcny kod autocomplet na localhost/test

index.php
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script type="text/javascript" src="typeahead.js"></script>
<div class="bgcolor">
        <label class="demo-label">Search Country:</label><br/> <input type="text" name="txtCountry" id="txtCountry" class="typeahead"/>
    </div>
</body>
<script>
    $(document).ready(function () {
        $('#txtCountry').typeahead({
            source: function (query, result) {
                $.ajax({
                    url: "server.php",
                    data: 'query=' + query,            
                    dataType: "json",
                    type: "POST",
                    success: function (data) {
                        result($.map(data, function (item) {
                            return item;
                        }));
                    }
                });
            }
        });
    });
</script>

a server.php
<?php        
    $keyword = strval($_POST['query']);
    $search_param = "%{$keyword}%";
    $pp =new mysqli('localhost', 'root', 'root' , 'test');

    $sql = $pp->prepare("SELECT * FROM dodavatel WHERE nazov_dodavatel LIKE ?");
    $sql->bind_param("s",$search_param);            
    $sql->execute();
    $result = $sql->get_result();
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
        $countryResult[] = $row["nazov_dodavatel"];
        }
        echo json_encode($countryResult);
    }
    $pp->close();
?>

Vsetko funguje ako ma... Ale ked sa pokusim vlozit kod do projektu, ktory bezi tiez na localy ale cez htaccess ako web... test.sk nefunguje nic...
test.sk/server.php vypise v poriadku to co ma, vyber z DB do array... Ked dam url: "server.php", ako url: "test.sk/server.php", tiez nejde
Kde mozem mat chybu?
blaaablaaa
Profil
Andrej.B:
Podívej se do konzole v prohlížeči (F12), jestli ti to nevypisuje nějakou chybu, případně ve stejném nástroji koukni do Network, co ti vrací ona stránka.
Andrej.B
Profil
blaaablaaa [#2]:
jedina chyba je
[Violation] Added synchronous DOM mutation listener to a 'DOMNodeInserted' event. Consider using MutationObserver to make the page more responsive.

Inak cisto...
Mlocik97
Profil
ten index.php ... brr, mi prešiel mráz po chrbte.
Andrej.B
Profil
Mlocik97 [#4]:
Why? Je to kus kodu z prikladu, ktory funguje na localhoste, ale nejde na to istom stroji len cez htaccess urobeny ako test.sk
DarkMeni
Profil
Andrej.B:
test.sk/server.php vypise v poriadku to co ma, vyber z DB do array... Ked dam url: "server.php", ako url: "test.sk/server.php", tiez nejde

Takže abych si to ujasnil, po načtení server.php v prohlížeči, se normálně zobrazí JSON s daty do autocomplete a ne prázdná stránka? Žádný warning ani nic jiného, co by mohlo narušit syntaxi JSONu? Ale když začneš psát do inputu txtCountry, tak se našeptávač neobjeví?

Koukal jsi do konzole a záložky "Network" případně česky "Síť" jak psal blaaablaaa? A samozřejmě po otevření té konzole je potřeba stránku přenačíst, jinak tam ty soubory, které už byly načtené, nebo se je načíst nepodařilo, nebudou.

A prozraď nám, jestli se tam po aktivaci toho inputu vůbec objeví "server.php?query=..." a s jakým kódem (stavem) ten požadavek skončí. Dík.
Andrej.B
Profil
Ako som pisal vyssie, kod funguje tak ako ma na localhost
Pokial ho dam na test.sk (ktory mam zapnuty cez virtual host tak nie... Ziadna chyba v konzoli neukazuje, len riadok Violation ako som uz pisal ... Pokial mam vyvolanu konzolu tak po klikuti do inputu sa nic neudeje ani v konzole... Je to rovnaky kod...
DarkMeni
Profil
Achjo, ale co ten výstup z Network záložky??
U Firefoxu nebo Google chrome: F12 -> (záložka) Síť


Pokud používáš Google Chrome tak tam to bude podobné, možná bude potřeba rozbalit všechny záložky schované pod ">>"

Prostě chci zjistit jestli se ten soubor vůbec podaří načíst, případně jestli ten požadavek vůbec vznikne. Pokud nevznikne tak je problém někde v javascriptu, pokud vznikne, ale nepodaří se načíst "server.php..." tak je problém někde v nastavení adres, složek, tam někde. A pokud se načte v pohodě (kód 200) tak bude problém pravděpodobně v syntaxi takto vygenerovaného souboru (na straně php), nebo zase někde v JS, ale už v callbacku.


A nebo když nenajdeš tu Network záložku, tak do success v tom ajaxu dej na začátek alert(data); a když začneš psát, tak by měla vyskočit hláška, kde bude buď ten json kód nebo něco jako [object Object], pokud nic nevyskočí, tak to ten soubor nenašlo.

Ten virtual host má nastavenou stejnou složku jako localhost?
Nemáš v <head> nastavený tag <base href="..."> nebo v .htaccess nějaké přepisy adres?
Zkus místo url: "server.php" dát url: "/server.php"
Andrej.B
Profil
pozeram vsetky zalozky... Na koniec sa mi podarilo najst ten server.php a dava kod 200, po kazdej poziadavke v tom inpute, ked v nom pisem...


Zrusil som cely server vo virtualhoste a dal som ho na novo este pred nacitam localhostu a funguje...
cize kontajner s test.sk pred kontajnerom localhostu/127.0.0.1

Netusim, kde mohla byt chyba... Diky za pomoc...
Rfilip
Profil
Když na ten řádek server.php v té Síť záložce kliknes, tak v záložce Odpověď budeš mít celou odpověď, je tam správná json odpověď nebo nějaká chyba?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0