« 1 2 »
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
A co tak ukázat kód?:)
Tata
Profil
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
zkus v odeslat.php : var_dump($_POST); co ti to vrátí.
Tata
Profil
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
Ale ja tam nevidím ani polozka1_radio ani to druhé, jsem slepej nebo jsi to přejmenoval?
Tata
Profil
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
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
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
dej do toho odoslat.php hned za <?php var_dump($_POST); exit; ?>
panther
Profil
Tata:
vždyť to funguje. Pokud to radio zaškrtneš, je $_POST['forum_radio'] == 'on'
Tata
Profil
stále ten istý výpis
radvis
Profil
Tak sem posli ten kod toho formu
panther: jenže mu se neodešle formulář.
panther
Profil
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
V tom případě má špatně napsanou podmínku.
Tata
Profil
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

var_dump($_POST); exit;
//premenne
$dir = "../downloads/";
$file = "NV_".date("YmdGis");
$ext = ".html";

$date = $_POST['date'];
$full_name = $_POST['full_name'];
$address = $_POST['address'];
$email = $_POST['email'];
$phone = $_POST['phone'];

$selection = $_POST['selection'];

$subdomain_nr = $_POST['subdomain_nr'];
$price_domain = $_POST['price_domain'];
$price_subdomain = $_POST['price_subdomain'];
$price_forum = $_POST['price_forum'];
$price_admin = $_POST['price_admin'];
$price_total = $_POST['price_total'];

$forum_radio = $_POST['forum_radio'];

$nick_name = $_POST['nick_name'];
$nick_place = $_POST['nick_place'];
$nick_group = $_POST['nick_group'];
$new_url = $_POST['new_url'];

$new_url = $_POST['new_url'];

$send = $_POST['send'];
$error ="";
$status ="";
//******************************************************

?>

<html>
<head>
<title>ORDER</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="order">

<table width="710" cellpadding="3" cellspacing="0" border="1">
<tr>
<td>ORDER Nr.: <?php echo $file;?></td>
<td align="right"><input name="date" type="text" size="7" value="<?php echo date("d.m.Y");?>" size="10" readonly></td>
</tr>
<?php
if (!$error) {
echo "
<tr>
<td colspan='2'>
<div style='background:lime;height:25px;line-height:25px;vertical-align:center'>
<div style='font-weight:bold;padding-left:10px;float:left'>Your order seems to be OK. It can be s
panther
Profil
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
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
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
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
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 *
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
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
Nič nepomohlo, asi to vzdám.
radvis
Profil
a dal jsis to vypsat? Jestli ano, co t ovypsalo? (var_dump($_POST['nazev_policka']);)
Nat
Profil *
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
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 *
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
Tak teraz to vrátilo string(2) "on" a radio je aj tak prázdne. Už mi z toho hrabe.
panther
Profil
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'; ?>>
« 1 2 »

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0