Autor Zpráva
Dominik Skála
Profil
Mám dotaz. Jak se dá vytvořit našeptávač (autocomplete), aby mi do vyhledávacího políčka sami vyskakovali nějaké možnosti (našeptávalo)?

A ještě by mě zajímalo zda google to má udělaný tak, že má v kódu zařazené možnosti nebo to má udělané nějak jinak?

Díky moc.
Destiny_1
Profil
Jak se dá vytvořit našeptávač
Pravděpodobně budete chtít vyhledávat z databáze, k tomu vám poslouží ajax a poté už jen javascriptem vypíšete výsledek. Na netu najdete určitě spousta návodů.

Například tady www.milosnemec.cz/clanek.php?id=157
Dominik Skála
Profil
Udělal jsem vše podle tutoriálů a stále mi toto nefunguje. Mohl byste mi případně někdo říct kde mám chybu?
Zde je ajax.php
mysql_connect("localhost","root","") or die("neleze se připojit");
mysql_select_db("ajax") or die("nelze se připojit");
$input = $_REQUEST['input'];
$input = mysql_real_escape_string(trim($input));
$sql = "SELECT * FROM `register` WHERE username LIKE '%".input."%'";
$data = mysql_query($sql);
$arrent = -1;
$dataArray = array();
while($temp = mysql_fetch_assoc($data))
{
    foreach($temp as $key=>$val)
    {
        $temp[$key] = stripslashes($val);
        $arrent++;
    }
    $dataArray[$arrent] = $temp;
}
$list = "<ul class='unorganised'>";
foreach($dataArray as $val)
{
    $list .= "<li>".$val['username']."</li>";
}
$list .="</ul>"
?>

A zde javascript:
<script type="text/javascript">
    $(document).ready(function(){
        $("#input").keyup(function(){
            $("#suggest").html("");
            var input = $("#input").val();
            input = $.trim(input);
            if(input){
                $.ajax({
                    url: "ajax.php",
                    data: "input="+input,
                    success: function(msg){
                        $("#suggest").html(msg);
                        $("#suggest ul li").mouseover(function(){
                            $("#suggest ul li").removeClass("hover");
                            $(this).addClass("hover");
                    })
                    $("#suggest ul li").click(function(){
                        var value = $(this).html();
                        $("#input").val(value);
                        $("#suggest ul").remove();
                    });
                }
            });
            }
        });
    });
</script>   
Jan Kozák
Profil
Minimálně na řádku 5, kde používáš konstantu místo proměnné. A pak také nejspíš v tom, že ze souboru ajax.php nemáš žádný výstup, pouze si tam plníš proměnné.

Pokus se izolovat problém. Pokud ti správně funguje PHP část, když ji spustíš bez JS, víš, že chyba je v JavaScriptu. V opačném případě musíš problém hledat v souboru ajax.php.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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