Autor | Zpráva | ||
---|---|---|---|
umpa Profil * |
Učám se PHP, JS znám jen okrajově díky formulářům. Chtěl bych prosím vás nahradit tlačítko SUBMIT funkcí on click nebo něčím podobným, aby mi to fungovala na jedinej klik. Jde to?? Mne se to nedaří !!
Díky za každé info... Umpa <form action="" method="post"> <method="post"> <SELECT NAME="pokus" size="1"> <option value="0">Vyber jméno <option value="1">karel <option value="2">petr </SELECT> <input type="submit" value="odeslat"> </form> <?php if ($_POST) { if ($_POST['pokus'] == 0) { echo 'Přihlaste se prosím vašim jménem'; } } if ($_POST) { if ($_POST['pokus'] == 1) { echo 'Karel je tu'; } } if ($_POST) { if ($_POST['pokus'] == 2) { echo 'Cauky Peter '; } } ?> |
||
Nox Profil |
#2 · Zasláno: 10. 3. 2009, 11:51:07 · Upravil/a: Nox
Nechápu, vždyť submit se přece aktivuje jedním kliknutím
Pokud bys chtěl při události onclick vyvolat odeslání formuláře, lze to takto onclick="document.forms[0].submit()" samozřejmě adresování formuláře je na ukázku, takto to odešle první formulář, můžeš změnit číslo, případně dát formuláři attribut name a užít ["name_formulare"] atd., viz http://www.jakpsatweb.cz/javascript/document-adresovani.html edit: špatný obsah schránky:) edit2: aha, při <selectu>, už chápu |
||
ninja Profil |
#3 · Zasláno: 10. 3. 2009, 11:53:31 · Upravil/a: ninja
na select dejte onchange="document.form[0].submit()". Idelane to nastavit pouze pokud bude vybrana jina hodnata nez dosavadni, ale to by vyzadovalo komplexnejsi pristup.
|
||
Chamurappi Profil |
#4 · Zasláno: 11. 3. 2009, 12:47:46
Reaguji na Noxe a ninju:
„document.form[0].submit()“ Raději obecně: this.form.submit() |
||
Časová prodleva: 11 dní
|
|||
suvel Profil |
#5 · Zasláno: 22. 3. 2009, 23:19:02 · Upravil/a: suvel
Jen tak na okraj (u JS jsem teprve v začátcích) - k čemu jsou u .submit ty závorky? Veškeré příklady, co jsem kde našel, je mají prázdné.
A můžu se pomocí onChange (nebo onClick) dostat na určité místo téhož formuláře? Třeba na jiný <INPUT>? Nebo mě to vždycky z formuláře jen vyhodí stejně jako <INPUT TYPE=SUBMIT>? Předem dík za pomoc :-) |
||
Senky Profil |
#6 · Zasláno: 23. 3. 2009, 17:36:36 · Upravil/a: Senky
ninja
Nechapem preco komplexnejsi....ved predsa staci ked pouzije funkciu onchange iba na prvy a druhy option, ked na nulty neda nic tak si budu musiet vybrat... suvel No takze kazda stranka sa predsa musi nejako dat rozdelit, kazda cast suboru musi byt nejako samostatne dosiahnutelna, tak isto ako sa najprv napise. V JS je to o to jednoduchsie, ze to je tozdelene podla tagov, povedzme ze sa chces dostat na nejaky submit, ktory je vo forme, a to je v body...a tak dalej....cize to zacne slovom document. (ako keby <body>), potom das form. (iba ak je jediny na celej stranke, ak je ich viac je to trosku zlozitejsie...)..no a potom submit() (co je input - type=submit), a si na tomto tlacidle. Cele by to vyzeralo asi takto: document.form.submit() Potom si s nim mozse urobit co chces, stlacit ho, zrusit ho, dat mu styl..a podobne, ty ale chces nanho kliknut, cize das do option 1 a 2 dalej za value este aj onchange="document.form.submit()", alebo onclick="document.form.submit()", myslim ze by to malo byt jedno....dufam ze je to zrozumitelne... |
||
suvel Profil |
#7 · Zasláno: 23. 3. 2009, 17:41:22 · Upravil/a: suvel
senky
Perfektně vysvětleno - díky!!! Ale, kčertu, k čemu jsou tam ty závorky, když jsem je vždycky viděl jen prázdné???? |
||
Senky Profil |
#8 · Zasláno: 23. 3. 2009, 18:21:21 · Upravil/a: Senky
Neviem naisto, ale myslim, ze je to preto, ze je to funkcia, a kazda funkcia ma moznost vyuzivat premenne. JS tak isto ako PHP ma automaticke funkcie, ktore netreba definovat a same spravia robotu za teba a bez definovania nejakych premennych....asi to je preto takto.
|
||
Chamurappi Profil |
#9 · Zasláno: 25. 3. 2009, 12:25:39
Reaguji na Senkyho:
„cize to zacne slovom document. (ako keby <body>)“ Ne. <body> je v „document.body“. Objekt document je v hierarchii nad všemi elementy. „potom das form.“ To ovšem u documentu funguje, jen pokud se formulář jmenuje „form“ (tzn. má name="form"). „no a potom submit() (co je input - type=submit), a si na tomto tlacidle“ „Potom si s nim mozse urobit co chces, stlacit ho, zrusit ho, dat mu styl“ Ne. Metoda submit() je přímo na formuláři, nijak se netýká odesílacího tlačítka. Jednoduše řečeno je to funkce, která vyvolá odeslání, (skoro) stejně jako by ho vyvolávalo odesílací tlačítko. „ty ale chces nanho kliknut, cize das do option 1 a 2 dalej za value este aj onchange="document.form.submit()", alebo onclick="document.form.submit()"“ Raději na <select>u, s událostmi na <option>u jsou problémy. Snaha vyvolat kliknutí na nějaké tlačítko nijak nesouvisí s onclickem. Atribut onclick obsahuje příkazy, které se vykonají při kliknutí na element s tímto atributem. „myslim, ze je to preto, ze je to funkcia, a kazda funkcia ma moznost vyuzivat premenne“ Ne. „dufam ze je to zrozumitelne...“ Nedoporučuji ti vzdělávat ostatní v oblasti JavaScriptu. Reaguji na suvela: „k čemu jsou u .submit ty závorky?“ Funkce v JS je de facto jen jiný druh proměnné. Můžeš je přesouvat z proměnné do proměnné i předávat jako argumenty. Pokud nepoužiješ závorky, pracuje se přímo s funkcí. Pokud je použiješ, funkce se vyhodnotí a pracuje se s jejím výsledkem. „A můžu se pomocí onChange (nebo onClick) dostat na určité místo téhož formuláře? Třeba na jiný <INPUT>?“ Jestli tím myslíš přesun kurzoru na jiné místo, tak můžeš: <select onchange="this.form.jménoPolíčka.focus()"> |
||
suvel Profil |
#10 · Zasláno: 25. 3. 2009, 12:38:52
Chamurappi
Mezitím už jsem to skoro pochopil sám, ale dík za perfektní výklad. Je super, že máš slitování se začátečníky :-)) |
||
_es Profil |
#11 · Zasláno: 25. 3. 2009, 12:43:06 · Upravil/a: _es
suvel
„Ale, kčertu, k čemu jsou tam ty závorky, když jsem je vždycky viděl jen prázdné????“ Tie zátvorky slúžia na iný účel, ako napríklad (a + b) * c , v tomto prípade to je operátor volania funkcie, teda; f(); // zavolaj funkciu f, bez využitia jej návratovej hodnoty x = g(); // zavolaj funkciu g a priraď jej návratovú hodnotu do x h = g; // h bude rovnaká funkcia ako g h(1); // zavolaj funkciu h, s jedným parametrom, bez využitia jej návratovej hodnoty |
||
Časová prodleva: 15 let
|
0