Autor | Zpráva | ||
---|---|---|---|
Tata Profil |
Mám nasledovný problém:
Mám súbory: formular.html, ktorý volá po potvrdení odoslat.php. formular.html - obsahuje formulár odoslat.php obsahuje pravidlá pre vyhodnotenie formulára pred odoslaním, výpočty, chybové hlášky a pod. Vo formulári mám checkbox a radio. Ak ich vo formulári označím, vyhodnotenie v odoslat.php prebehne OK. Ak ich neoznačím, vyhodnotenie v odoslat.php mi vráti: Undefined index: polozka1_radio... Undefined index: polozka2_radio... Googlil som a našiel kadečo, ale nie som z toho múdry a nič z toho, čo som našiel mi nefunguje. Potrebujem, aby mal užívateľ možnosť skontrolovať odosielaný formulár ešte pred jeho odoslaním. Prosím, poraďte. Vopred ďakujem. |
||
radvis Profil |
#2 · Zasláno: 24. 6. 2010, 16:02:45
A co tak ukázat kód?:)
|
||
Tata Profil |
#3 · Zasláno: 24. 6. 2010, 16:12:43 · Upravil/a: Tata
OK. A ešte detail: užívateľ môže nechať aj checkbox, aj radio neoznačené.
formular.html <form action="odoslat.php" method="post" name="odoslat"> ...... <input type="radio" name="polozka1_radio" value="polozka1"> ...... <input type="checkbox" name="polozka2_checkbox" value="polozka2"> odoslat.php //premenne $polozka1_radio = $_POST['polozka1_radio']; $pololzka2_checkbox = $_POST['polozka2_checkbox']; ...... <input type="radio" name="polozka1_radio"> <input type="checkbox" name="polozka2_checkbox"> ...... |
||
radvis Profil |
#4 · Zasláno: 24. 6. 2010, 16:28:56
zkus v odeslat.php : var_dump($_POST); co ti to vrátí.
|
||
Tata Profil |
#5 · Zasláno: 24. 6. 2010, 17:01:10
Tu sú skutočné hodnoty kódu. Ten checkbox som predbežne zrušil a skúšam to najprv iba s tým radiom.
array(17) { ["date"]=> string(10) "24.06.2010" ["send"]=> string(15) "Check the order" ["full_name"]=> string(14) "Your full name" ["address"]=> string(12) "Your address" ["email"]=> string(16) "Your valid email" ["phone"]=> string(10) "Your phone" ["selection"]=> string(58) "Choose desired type or structure of your domain/subdomains" ["price_domain"]=> string(0) "" ["subdomain_nr"]=> string(0) "" ["price_subdomain"]=> string(0) "" ["price_forum"]=> string(0) "" ["price_admin"]=> string(0) "" ["price_total"]=> string(0) "" ["nick_name"]=> string(0) "" ["nick_place"]=> string(15) "Your place name" ["nick_group"]=> string(15) "Your group name" ["new_url"]=> string(0) "" } |
||
radvis Profil |
#6 · Zasláno: 24. 6. 2010, 17:10:44
Ale ja tam nevidím ani polozka1_radio ani to druhé, jsem slepej nebo jsi to přejmenoval?
|
||
Tata Profil |
#7 · Zasláno: 24. 6. 2010, 17:24:35
Sem do fóra som to premenoval. Teraz som to hodil na host a je tu dalšia sranda:
Na localhoste mi to pri odosielaní vyhadzovalu tú chybu (checkbox som zrušil). Na hoste žiadnu chybu nevyhadzuje, ale pre zmenu neprenáša hodnotu radia. Niektoré premenné budú kalkulované (preto tam nie sú vyčíslené). TEST ZDROJ (3kB) |
||
radvis Profil |
#8 · Zasláno: 24. 6. 2010, 17:28:16
Tak to nepřepisuj a pošli sem do fóra co ti to přesně vrací, nechce se mi hrabat v kódu.
|
||
Tata Profil |
#9 · Zasláno: 24. 6. 2010, 18:13:48
Práve, že teraz na ISP hoste to nič nevracia, ale neodosiela ani hodnotu radia. Vo formulári ho označím a do spracovania sa neprenesie.
|
||
radvis Profil |
#10 · Zasláno: 24. 6. 2010, 18:22:47
dej do toho odoslat.php hned za <?php var_dump($_POST); exit; ?>
|
||
panther Profil |
#11 · Zasláno: 24. 6. 2010, 18:28:56
Tata:
vždyť to funguje. Pokud to radio zaškrtneš, je $_POST['forum_radio'] == 'on' |
||
Tata Profil |
#12 · Zasláno: 24. 6. 2010, 18:29:46
stále ten istý výpis
|
||
radvis Profil |
#13 · Zasláno: 24. 6. 2010, 18:39:48
Tak sem posli ten kod toho formu
panther: jenže mu se neodešle formulář. |
||
panther Profil |
#14 · Zasláno: 24. 6. 2010, 18:43:09
radvis:
„jenže mu se neodešle formulář.“ jaktože ne? Po odeslání formuláře se mu na stránce http://www.cmsimple.sk/test/ordered.php dumpne $_POST, takže se formulář odešle. Když má submit, není důvod, aby se neodeslal. Tata: jen tak mimochodem, ve formuláři máš neukončený jeden input <input type="text" name="address" size="50" value="Your address"> |
||
radvis Profil |
#15 · Zasláno: 24. 6. 2010, 18:53:43
V tom případě má špatně napsanou podmínku.
|
||
Tata Profil |
#16 · Zasláno: 24. 6. 2010, 18:55:34
kód formuláru:
<html> <head> <title>ORDER Nr.: </title> <meta http-equiv='content-type' content='text/html;charset=utf-8'> <LINK REL='stylesheet' HREF='styles/form.css' type='text/css'> </head> <body> <form action="ordered.php" method="post" name="ordered"> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td> <table width="100%"> <tr> <td>ORDER Nr.: </td> <td align="right"><input name="date" type="text" size="7" value="<?php echo date("d.m.Y");?>" size="10" readonly></td> </tr> </table> </td> </tr> </table> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td> <div style='float:left'>CHECK ALL DETAILS BEFORE SUBMITTING YOUR ORDER!!!!</div> <div style='float:right'> <input name='send' type='submit' value='Check the order'> <input name='reset' type='reset' value='Cancel the order'> </div> </td> </tr> </table> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td>Name:</td><td><input type="text" name="full_name" size="50" value="Your full name"></td> </tr> <tr> <td>Address:</td><td><input type="text" name="address" size="50" value="Your address"></td> </tr> <tr> <td>E-mail:</td><td><input type="text" name="email" size="50" value="Your valid email"></td> </tr> <tr> <td>Phone</td><td><input type="text" name="phone" size="50" value="Your phone"></td> </tr> <tr> <td>Type and/or structure:</td> <td> <select name="selection" value="$selection"> <option value="Choose desired type or structure of your domain/subdomains">Choose desired type or structure of your domain/subdomains</option> <option value="yournickname.thisdomain.info">yournickname.thisdomain.info</option> <option value="yourplacename.thisdomain.info">yourplacename.thisdomain.info</option> <option value="yourplacename.thisdomain.info/yournickname">yourplacename.thisdomain.info/yournickname</option> <option value="yourplacename.thisdomain.info/groupname">yourplacename.thisdomain.info/groupname</option> </select> </td> </tr> </table> <br> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td width="100">Basic installation</td> <td width="155" colspan="2">Subdomains (nr)</td> <td width="155" colspan="2">Forum</td> <td width="150">Administration</td> <td width="150">Total</td> </tr> <tr> <td align='right'><input type="text" name="price_domain" size="4" value="" readonly style="text-align:right">.- €</td> <td align="right"><input type="text" name="subdomain_nr" size="2" value=""></td> <td align="right"><input type="text" name="price_subdomain" size="4" value="" readonly style="text-align:right">.- €</td> <td align="center" width="25"><input type="radio" name="forum_radio" value="$forum_radio"></td> <td align="right"><input type="text" name="price_forum" size="4" value="" readonly style="text-align:right">.- €</td> <td align="right"><input type="text" name="price_admin" size="4" value="" readonly style="text-align:right">.- €</td> <td align="right"><input type="text" name="price_total" size="4" value="" readonly style="text-align:right">.- €</td> </tr> </table> <br> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td>Desired nick name</td> <td>Desired place name</td> <td>Desired group name</td> <td>Your new URL</td> </tr> <tr> <td width="100"><input type="text" name="nick_name" size="15" value="Your nickname"></td> <td width="100"><input type="text" name="nick_place" size="15" value="Your place name"></td> <td width="100"><input type="text" name="nick_group" size="15" value="Your group name"></td> <td><input type="text" name="new_url" size="45" value="address of new URL" readonly></td> </tr> </table> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td>Special requirements</td> </tr> <tr> <td><textarea name="new_url" cols="60" rows="6" value="Special requirement shall be consulted later by phone."></textarea></td> </tr> <tr> <td>CHECK ALL DETAILS BEFORE SUBMITTING YOUR ORDER!!!</td> </tr> <tr> <td> <div>A copy of your order will be sent to above inserted e-mail.</div> <div>Your order will be realized upon your payment within 5 work days..</div> <div>Please, transfer your payment to: .</div> </td> </tr> </table> <table width="710" cellpadding="3" cellspacing="0" border="1"> <tr> <td> <div style='float:left'>Pred odoslaním urobte kontrolu objednávky!</div> <div style='float:right'> <input name='send' type='submit' value='Check the order'> <input name='reset' type='reset' value='Cancel the order'> </div> </td> </tr> </table> </form> </body> </html> ****** kód pre výstup ****** <?php |
||
panther Profil |
#17 · Zasláno: 24. 6. 2010, 18:59:08
Tata:
kód jsi sem vkládat nemusel. Formulář se odesílá, to vidíš na tom dumpu. Varování Undefined index ti to hlásí, protože při nevyplnění neexistuje proměnná $_POST['forum_radio'];, proto je ten řádek č. 45 v posledním kódu špatně. Použij isset, varování se zbavíš. |
||
Tata Profil |
#18 · Zasláno: 24. 6. 2010, 19:04:52
To varovanie mi d8valo iba na localhoste. Nechápem, prečo neprenesie radio=on do výstupu. Furt je to tam prázdne.
Nefungujú ešte všetky funkcie, lebo som sa zastavil na tom radiu. Potupne dopĺňam podmienky a výpočty. |
||
panther Profil |
#19 · Zasláno: 24. 6. 2010, 19:07:45
Tata:
„Nechápem, prečo neprenesie radio=on do výstupu. Furt je to tam prázdne.“ není, než jsi smazal ten dump, tak jsi si mohl všimnou, že se odešle a vypíše. „prečo neprenesie radio=on“ možná proto, že to není radio, nýbrž $_POST['forum_radio']? |
||
Tata Profil |
#20 · Zasláno: 24. 6. 2010, 19:12:29
Tak na toto som príliš lama. Čumím do toho obložený knihami a prelikávam sa cez kopec php fór, ale neviem nájsť nič, čo by ma posunulo ďalej. Ale aj tak ďakujem za úžasnú ochotu. AK na nič neprídem, budem to musieť vyriešiť nejako inak, ale to už nebude také pohodlné, ako som chcel. :-(
|
||
radvis Profil |
#21 · Zasláno: 24. 6. 2010, 19:46:20
tak si vim, jak mas pojmenovany primo to policko pro radio a vypiš si ho (ale jak psal panther tak vyplněné je) a pak uvidíš, co ti přesně vrací a podle toho můžeš upravit podmínku popřípadě form.
|
||
Nat Profil * |
#22 · Zasláno: 24. 6. 2010, 19:48:43
možná úplně mimo, ale v tom test formuláři má to radio value="$forum_radio", podle mě to není očekáváaná hodnota pro radio. Mám pocit, že by tam mělo být "on" pokud ho očekáváte...
|
||
radvis Profil |
#23 · Zasláno: 24. 6. 2010, 20:26:26
Taky jsem se divil, že má někde $selection nebo tak něco, ale myslel jsem, že to má třeba někde definované. Proto jsem psal, ať si vypíše jen to políčko, co mu to vrací.
|
||
Tata Profil |
#24 · Zasláno: 24. 6. 2010, 20:26:30
Nič nepomohlo, asi to vzdám.
|
||
radvis Profil |
#25 · Zasláno: 24. 6. 2010, 20:45:11
a dal jsis to vypsat? Jestli ano, co t ovypsalo? (var_dump($_POST['nazev_policka']);)
|
||
Nat Profil * |
#26 · Zasláno: 24. 6. 2010, 20:53:34
Tak se zeptám jinak. Jaké hodnoty má nabývat to radio v atributu value tj. value="?" Pokud to má být "on" nebo "off", tak to musí být i tak zapsáno v html výstupu, nemůže tam být value="$forum_radio".
Zkoušel jste tam zadat natvrdo tu hodnotu, kterou tam chcete nebo se to stále snažíte dostat z nějaké proměnné? |
||
Tata Profil |
#27 · Zasláno: 24. 6. 2010, 20:54:10 · Upravil/a: Tata
No, teraz to vypísalo: string(12) "$forum_radio"
Odstránil som "$forum_radio" z index.php a vrátilo to string(0)"". Ale, keď vo formulári označím radio, malo by to predsa vrátiť "1". nie? |
||
Nat Profil * |
#28 · Zasláno: 24. 6. 2010, 20:59:56
No to je ono, value toho radio butonu je "$forum_radio" ne vaše požadované "on" Tj. asi by chtělo upravit toto:
<td align="center" width="25"><input type="radio" name="forum_radio" value="$forum_radio"></td> na <td align="center" width="25"><input type="radio" name="forum_radio" value="<?php echo $forum_radio; ?>"></td> |
||
Tata Profil |
#29 · Zasláno: 24. 6. 2010, 21:19:55
Tak teraz to vrátilo string(2) "on" a radio je aj tak prázdne. Už mi z toho hrabe.
|
||
panther Profil |
#30 · Zasláno: 24. 6. 2010, 21:22:58 · Upravil/a: panther
Tata:
„a radio je aj tak prázdne.“ a čím ho zaplňuješ? Radio nemá atribut value, označení se provádí pomocí atributu chcecked. Tedy: <input type="radio" name="forum_radio"<?php if(isset($_POST['forum_radio'])) echo ' checked'; ?>> |
||
Téma pokračuje na další straně.
|
0