Autor | Zpráva | ||
---|---|---|---|
pet4a Profil |
#1 · Zasláno: 18. 8. 2016, 10:45:05
Dobrý den,
mohl by mi někdo pomoci s doplněním textu po kliknutí na "našeptávaní" z AJAXU? var hledani = xmlhttp.responseText; document.getElementById("vysledky").innerHTML = hledani; V "našeptávačí" se mi pouze zobrazí výsledky vyhledávání ale nevím jak je posléze dostat to inputu. Moc díky |
||
Dan Charousek Profil |
#2 · Zasláno: 18. 8. 2016, 11:09:47
Ideální by bylo nevracet v odpovědi jakýsi html snippet, který pak natvrdo vložíš do elementu #vysledky, ale vracet něco, s čím se dá lépe pracovat. Třeba JSON. Ten pak proiterovat a pro každý výsledek vytvořit obalový element, který bude mít onclick, při kterém se zapíše text do vyhledávacího inputu.
|
||
pet4a Profil |
Díky za radu, tak z AJAXU mi to bere snad ve formátu JSON
např. [{"ID":"6","Jmeno":"Neil","Prijmeni":"Gaiman"}] var rozdeleni = JSON.parse(xmlhttp.responseText); document.getElementById("vysledky").innerHTML = rozdeleni.Jmeno; a v konzoli mi to vyhodí chybu SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data AJAX $dataArray = array(); while ($radek = $autor->fetch(PDO::FETCH_ASSOC)){ $dataArray[] = $radek; //echo($radek['Prijmeni'].'*'.$radek['Jmeno'].'*'.$radek['ID'].'<br>'); } echo json_encode($dataArray); } Přikládám ještě obsah souboru ajax.php if(isset($_GET['hprijmeni'])){ $hledani = $_GET['hprijmeni']; $hledany_dotaz = "SELECT * FROM Autor WHERE Prijmeni LIKE '%".$hledani."%'"; $autor = $conn->prepare($hledany_dotaz); $autor ->execute(); $dataArray = array(); while ($radek = $autor->fetch(PDO::FETCH_ASSOC)){ $dataArray[] = $radek; //echo($radek['Prijmeni'].'*'.$radek['Jmeno'].'*'.$radek['ID'].'<br>'); //echo json_encode(array('Prijmeni'=>$radek['Prijmeni'],'Jmeno'=>$radek['Jmeno'],'ID'=>$radek['ID'])); } echo json_encode($dataArray); } Nevíte někdo kde mám chybu? |
||
Dan Charousek Profil |
#4 · Zasláno: 18. 8. 2016, 13:34:34
pet4a:
Co ti script vypíše, když soubor ajax.php spustíš ručně a ne přes ajax? Jinak máš tam bezpečnostní díru: $hledani = $_GET['hprijmeni']; $hledany_dotaz = "SELECT * FROM Autor WHERE Prijmeni LIKE '%".$hledani."%'"; Oprav na: $hledany_dotaz = "SELECT * FROM Autor WHERE Prijmeni LIKE '%?%'"; $autor = $conn->prepare($hledany_dotaz); $autor->execute([$_GET['hprijmeni']]; Netestováno, ale myšlenka je snad jasná. |
||
pet4a Profil |
#5 · Zasláno: 18. 8. 2016, 13:45:49
Dan Charousek:
Díky za upozornění když pustím samotný ajax.php s parametrem tak mi to vypíše [{"ID":"6","Jmeno":"Neil","Prijmeni":"Gaiman"}] |
||
Dan Charousek Profil |
#6 · Zasláno: 18. 8. 2016, 14:01:38
Zvláštní: Živá ukázka
|
||
pet4a Profil |
#7 · Zasláno: 19. 8. 2016, 09:36:04 · Upravil/a: Moderátor (editace znemožněna) 19. 8. 2016, 10:57:57
Dan Charousek:
Děkuji za pomoc, tak nakonec to bylo tím, že jsem v tom souboru který jsem volal AJAXem neměl jenom čisté PHP :) Ještě jednou moc díky za čas. A ještě jeden rychlá rada? Je někde nějaký článek o způsobu psaní " a '? Elementu chci přidat funkci s parametrem který je proměnná a nevím jak to do něj mám zanořit. document.getElementById('vysledky').setAttribute("onclick","vybertext(TADY POTŘEBUJI VLOŽIT PROMĚNOU )" ); |
||
Keeehi Profil |
#8 · Zasláno: 19. 8. 2016, 10:44:33
Základy syntaxe JavaScriptu - escape sekvence
|
||
juriad Profil |
Události se navěšují přímo a nikoli přes atribut:
document.getElementById('vysledky').onlick = function() { vybertext(TADY SI MŮŽEŠ DĚLAT CO CHCEŠ); }; |
||
pet4a Profil |
#10 · Zasláno: 19. 8. 2016, 11:20:14
juriad:
Tak už mi to funguje, moc děkuji :) |
||
Časová prodleva: 8 let
|
0