Formulář – addtext automatické doplňování při psaní textu
- Allconius
- Člen | 317
Ahoj, chtěl bych se zeptat jak vytvořit ve vyhledávacím formuláři automatické nabízení hodnoty pole při psaní textu, tj. aby se text kontroloval přes LIKE s hodnotami v databázi a nabízely se nalezené alternativy. Např. jak je to na stránce http://dotace.ostrava.cz/ u položky „NÁZEV ŽADATELE“
- skromny
- Člen | 5
napriklad cez jQuery.autocomplete – https://jqueryui.com/autocomplete/#…
plus teda zdroj dat (url: „search.php“) nahradit volanim vlastneho handle (url: {link getAlternatives!})
a potom v handleGetAlternatives si toto naplnit datami z dB a ako json vratit…
- Allconius
- Člen | 317
skromny napsal(a):
napriklad cez jQuery.autocomplete – https://jqueryui.com/autocomplete/#…
plus teda zdroj dat (url: „search.php“) nahradit volanim vlastneho handle (url: {link getAlternatives!})
a potom v handleGetAlternatives si toto naplnit datami z dB a ako json vratit…
super to je přesně ono, moc díky ! :-)
- Allconius
- Člen | 317
skromny napsal(a):
napriklad cez jQuery.autocomplete – https://jqueryui.com/autocomplete/#…
plus teda zdroj dat (url: „search.php“) nahradit volanim vlastneho handle (url: {link getAlternatives!})
a potom v handleGetAlternatives si toto naplnit datami z dB a ako json vratit…
Ahoj, mohl bych se ještě zeptat jak ty data správně naformátovat? V kódu by to mělo vypadat takto:
<?php
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
?>
tak jsem do šablony dal takto:
<?php
var availableTags = [
{$data}
];
?>
s tím, že v presenteru je mám jako pole:
<?php
$data = $this->dbManager->pridejData();
$this->template->data = implode(",",$data);
?>
akorát se mi to pak tváří jako jeden záznam, asi protože to nemá ten původní formát ale je to vše na jednom řádku, bez těch uvozovek:
<?php
var availableTags = [
"\"Abc\",\"Typ B\", z.s.,\"Sdružení folkloru\",\"Sdružení rodičů\",Fórum, AAEEEG, Asociace, Music, Publishing, z.ú. .....
];
?>
- Allconius
- Člen | 317
Allconius napsal(a):
skromny napsal(a):
napriklad cez jQuery.autocomplete – https://jqueryui.com/autocomplete/#…
plus teda zdroj dat (url: „search.php“) nahradit volanim vlastneho handle (url: {link getAlternatives!})
a potom v handleGetAlternatives si toto naplnit datami z dB a ako json vratit…
Ahoj, mohl bych se ještě zeptat jak ty data správně naformátovat? V kódu by to mělo vypadat takto:
<?php var availableTags = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby", "Scala", "Scheme" ]; ?>
tak jsem do šablony dal takto:
<?php var availableTags = [ {$data} ]; ?>
s tím, že v presenteru je mám jako pole:
<?php $data = $this->dbManager->pridejData(); $this->template->data = implode(",",$data); ?>
akorát se mi to pak tváří jako jeden záznam, asi protože to nemá ten původní formát ale je to vše na jednom řádku, bez těch uvozovek:
<?php var availableTags = [ "\"Abc\",\"Typ B\", z.s.,\"Sdružení folkloru\",\"Sdružení rodičů\",Fórum, AAEEEG, Asociace, Music, Publishing, z.ú. ..... ]; ?>
Problém je že některé názvy už jsou s uvozovkami „Abc“, „Typ B“ apod…
- Jan Tvrdík
- Nette guru | 2595
V presenteru má být jenom
$this->template->data = $this->dbManager->pridejData();
a v šabloně jenom
var availableTags = {$data};
- Ondřej Kubíček
- Člen | 494
pošli to pole bez implodu a mělo by stačit tohle
var availableTags = {$data}
- dakur
- Člen | 493
@andrstom Hotové řešení je napsané zde: https://forum.nette.org/…-psani-textu#…
Editoval dakur (2. 11. 2020 9:39)