| Autor | Zpráva | ||
|---|---|---|---|
| wifinko028 Profil |
#1 · Zasláno: 3. 8. 2013, 10:45:36
Ahojte, prosím vás potrebujem radu. Potreboval by som script (nie som si istý či píšem do správnej sekcie, ale myslím, že áno). Mam <select> mám v ňom napr. TEST 1, TEST2, TEST3, potreboval by som ak v selecte vyberiem napr. TEST 1 zobrazilo by sa mi ihneď v inpute číslo ktoré mám nastavené k tomu selectu. Dúfam, že som to napísal zrozumiteľne. Vopred ďakujem za všetky rady.
|
||
| Jan Tvrdík Profil |
#2 · Zasláno: 3. 8. 2013, 10:53:08
<!doctype html> <form> <input name="a" type="text"> <select name="b" onchange="this.form.a.value = this.options.item(this.selectedIndex).value"> <option value="1">první</option> <option value="2">druhý</option> </select> </form> |
||
| wifinko028 Profil |
#3 · Zasláno: 3. 8. 2013, 11:01:40
Díki moc avšak nie je možná aj iná voľba? Pretože ja pri OPTION value potrebujem priamy text pretože sa mi to zapisuje do DB teda ten text co je vo value.
|
||
| nemeja Profil |
wifinko028:
„Pretože ja pri OPTION value potrebujem priamy text pretože sa mi to zapisuje do DB teda ten text co je vo value.“ Proč zapisujete int jako string? Formulář vám pošle string, je už jenom na vás, jestli ho uložíte jako string, nebo ne. Pokud chcete uložit string, tak proměnnou obalte uvozovkama, jinak nechte jen přetypovanou proměnnou. String: INSERT INTO table ( formvalue ) VALUES ( '".$form_value ."' ); Int: INSERT INTO table ( formvalue ) VALUE ( ".(int)$form_value." ); |
||
| Chamurappi Profil |
#5 · Zasláno: 3. 8. 2013, 13:50:23
Reaguji na Jana Tvrdíka:
„ this.form.a.value = this.options.item(this.selectedIndex).value“
Hodnota vybraného <option>u je i v this.value.
Reaguji na wifinka028: „ja pri OPTION value potrebujem priamy text“ Asi úplně nerozumím, co je tímto myšleno (a nevím, jak to pochopil nemeja). Do value elementů <option> si můžeš dát, co chceš, nemusí tam být čísla.
|
||
| nemeja Profil |
#6 · Zasláno: 3. 8. 2013, 15:03:27
Chamurappi:
Pochopil jsem to tak, že po odeslání chce uložit hodnotu do databáze jako string. |
||
| Kubo2 Profil |
#7 · Zasláno: 3. 8. 2013, 15:19:35
" Dúfam, že som to napísal zrozumiteľne "
Nie, to si teda nenapísal. To čo si chcel, sa dalo najlepšie pochopiť ako v [#2]. Do value v option si môžeš dať úplne ľubovolnú hodnotu (dúfam, že sa neopakujem). |
||
| wifinko028 Profil |
#8 · Zasláno: 3. 8. 2013, 15:37:53
Chápem vás, ale ja to myslel takto, tie čísla sú vo value lenže ja už vo value niečo mám čo tam musí byť, preto tie čísla nemôžem mať aj vo value.
|
||
| Jan Tvrdík Profil |
#9 · Zasláno: 3. 8. 2013, 15:46:36
wifinko028:
Tak potom použij třeba data atributy. <!doctype html> <form> <input name="a" type="text"> <select name="b" onchange="this.form.a.value = this.options.item(this.selectedIndex).dataset.foo"> <option value="1" data-foo="aaa">první</option> <option value="2" data-foo="bbb">druhý</option> </select> </form> ( dataset nefunguje pořádně v IE)
|
||
| wifinko028 Profil |
#10 · Zasláno: 3. 8. 2013, 15:50:50
Díki moc, veľmi.
|
||
| Chamurappi Profil |
#11 · Zasláno: 3. 8. 2013, 15:52:49
Reaguji na Jana Tvrdíka:
Proč používat dataset a ne něco, co funguje prakticky odjakživa všude?
„nefunguje pořádně v IE“ Lépe řečeno ve většině používaných verzí nefunguje vůbec. Reaguji na wifinka028: A to jiné číslo má být předvyplněné do <input>u s úmyslem, že si ho má člověk prohlédnout (a případně i změnit), nebo s úmyslem, že se jen pošle na server jinou cestou? Pokud je to ta druhá možnost, tak to máš divně vymyšlené a měl bys to udělat jinak. Pokud je to ta první možnost, řešil bych to třeba takhle:
<form>
<input name="alfa">
<select name="beta" onchange="this.form.alfa.value = {'a': 1, 'b': 2, 'c': 3}[this.value];">
<option value="a">X
<option value="b">Y
<option value="c">Z
</select>
</form>Kdybys chtěl používat vlastní atributy, tak tento postup funguje všude: <form>
<input name="alfa">
<select name="beta" onchange="this.form.alfa.value = this.options[this.selectedIndex].getAttribute('cislo');">
<option value="a" cislo="1">X
<option value="b" cislo="2">Y
<option value="c" cislo="3">Z
</select>
</form> |
||
| Jan Tvrdík Profil |
#12 · Zasláno: 3. 8. 2013, 16:00:31
Chamurappi:
„Proč používat dataset a ne něco, co funguje prakticky odjakživa všude?“
Osobní preference, jako tvůrce webu mám právo pohrdat si kým chci, stejně jako návštěvníci webu mají právo pohrdat mnou. |
||
| Chamurappi Profil |
#13 · Zasláno: 3. 8. 2013, 16:16:21
Reaguji na Jana Tvrdíka:
Osobní úchylky ovšem vedou k podprůměrně kvalitním radám. |
||
| wifinko028 Profil |
#14 · Zasláno: 3. 8. 2013, 16:41:16
Chamurappi:
Chcel som to aj tak ako píšete vy ale ja som zmenil aj ten názov pri onchange="this.form.alfa.value a tak mi to nefungovalo ďakujem. |
||
| Chamurappi Profil |
#15 · Zasláno: 3. 8. 2013, 21:16:31
Reaguji na wifinka028:
Oba mé kódy fungují. Pokud jsi někde udělal chybu, prosím o odkaz na živou ukázku. |
||
| wifinko028 Profil |
#16 · Zasláno: 4. 8. 2013, 10:53:27
Díki, ale ja to používam v echo ""; tam mi to avšak nefunguje.
|
||
|
Časová prodleva: 12 let
|
|||
0