Autor Zpráva
lukasb
Profil
prosím vás, mám formulář kde mám na výběr ze třech možností. ale když nězaškrtnu zádnou možnost, tak bohužel mi to zahlásí chybu. jsem to pokoušel oštřit pomocí if,ale bezúspěšně :-(. vidíte někde chybu? díky!

<?
 if (is_array($chata) && count($chata) == 0) echo "Nevybral jste žádný objekt";
 ?>
    
 Vyberte si prosím objekt
 <form method="post" action="r2.php" >
 <table>
<tr>
<td>
<input type="radio" name="chata" value="aaa">aaa</td></tr> 
<tr>
<td><input type="radio" name="chata" value="bbb">bbb</td></tr> 
<tr>
<td><input type="radio" name="chata" value="ccc">ccc<br></td></tr>
<tr>
<td><input type="submit" name="odeslat" value="Dále"></td></tr>
</table>
</form>


díky!
Lamicz
Profil
IMHO bych zde radeji pouzil SELECT, tam neni co resit a vzdy neco musi vybrat. Radio je divny.
Jinak kdyz uz takhle, tak radeji
if(isset($_POST['odeslat']) && isset($_POST['chata']))
lukasb
Profil
diký za odpověd! ale mě to prostě nefunguje :-(. když jsem to tvoje vyměnil za to co jsem tam měl já. tak to prostě bez problému pošle dál a pak to hodí chybu, při tlačítku dále ho nic nezastaví :-(.
panther
Profil
lukasb:
ale mě to prostě nefunguje
zkus popsat lépe, co znamená „prostě nefunguje“. Na toto nelze říci, než že je to rozbité

a pak to hodí chybu
jakou chybu?

při tlačítku dále ho nic nezastaví :-(.
tohle zkus napsat znovu a lépe. Nějak jsem ten konec nepochopil.
lukasb
Profil
omlouvám se :-).

ten kod co mi poslal Lamicz nefunguje, že to neregauje na to tlačítko. Když žádnou možnost nezaškrtnu, tak to nic neošetří a pošle to do toho souboru r2.php s chybou. V tom souboru r2.php vybírám z DB údaje s oheldem na výber chaty.
chyba je tato (v souboru r2.php)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

A ta poslední věc je ta, že jak jsem psal. když nic nevyplním a dám dále, nic to neudělá a pustí mě to do toho souboru r2.php, kde zahlásí chybu kvůli te DB. Mám třeba ošetřený jiný formulář (v jiném souboru)pomocí javascripu, že když hodnota je prádná, vyskočí na mě windows s textem, vyplnte pole.
Šlo by to nějak udělat i tady, aby na mě vyskočila hláška či mě to nepustilo dále, do té doby než něco nezaškrtnu?

Doufám, že jsem to ted napsal srozumitelně :-)
panther
Profil
lukasb:
Mám třeba ošetřený jiný formulář (v jiném souboru)pomocí javascripu, že když hodnota je prádná, vyskočí na mě windows s textem, vyplnte pole.
zkoušel jsi, co tahle ochrana udělá s vypnutým javascriptem? Vůbec nic, nebude fungovat.
lukasb
Profil
čili jak dobře chápu, tak k tomu ještě musím udělat javascript,vid?
vím, že to jsem nepatří ted ten JS,ale určitě mi s tím poradíte.jsem to zkoušel také v kombinací s tím JS a žádná vyjímka se neošetří, jak jsem psal, dám dále a postoupí to do dalšího souboru.

po opravě: hlavička formuláře
<form action="r2.php" method=POST name="g1" onSubmit="return zkontroluj_formular();">


function zkontroluj_formular()
{
if (g1.chata.value=="") {
		alert("zaškrtněte objekt,prosím!");
		g1.chata.focus();
		return false;
	}
return true;

}	
	


vidíte někdo chybu,díky!
Trejpa
Profil
lukasb:
Předpokládám, že ti vadí, že tvůj skript vždy vrátí true (formulář se provede).
function zkontroluj_formular()
{
if (g1.chata.value=="") {
        alert("zaškrtněte objekt, prosím!");
        g1.chata.focus();
        return false;
    }
else { return true; };
}    
lukasb
Profil
trejpa:
tak jsem zkoušel ten tvůj skript a dělá to totéž. převede to do dalšího suboru bez povšimnutí. žádné oštření vyjjímky to neudělá :-(
dan55
Profil
function zkontroluj_formular()
{
if (g1.chata.value=="") {
        alert("Zaškrtněte objekt, prosím!");
        g1.chata.focus();
        return false;
    }
else {return true;}
}    

na řádku 8 byll na konci středník
Trejpa
Profil
dan55:
na řádku 8 byll na konci středník
Ten ničemu nevadí. Problém je v podmínce.
lukasb
Profil
Trejba:
a když nevadí středník, tak kde je tedy chyba??prosím tě, mohl by si mi opatrvit tu podmínku,díky!

tak jsem to opravil a relativně mi to funguje. ale když mi vyskočí hláška, tak dám OK a ono mi to skočí na ten soubor, kam to má odeslat,což není ideální :-(. vidíte někdo chybu?

function zkontroluj_formular()
{
var df=document.g1;
if (!df.chata[0].checked && !df.chata[1].checked && !df.chata[2].checked)
 {
      alert("Musíte zaškrknout alespoň jednu položku .");
       g1.chata.focus();
        return false;   
         }
   return true; 
}
Molda
Profil *
přejmenuj si ty radia na chata1 ,chata2 ,chata3 a tohle by melo fungovat
function zkontroluj_formular()
{

if (!document.g1.chata1.checked && !document.g1.chata2.checked && !document.g1.chata3.checked)
 {
      alert("Musíte zaškrknout alespoň jednu položku .");
      return false   
 }
 else 
 {
      return true 
 }
   
}
Molda
Profil *
chybu způsobuje g1.chata.focus(); protože maš ty radia pojmenovaný stejně vlastně to stačí změnit na document.g1.chata1.focus() a pokud se bude pouze jedno radio jmenovat chata1 tak to půjde
davis
Profil *
Molda:
ano chyba je v g1.chata.focus(); ale jakmile prejmenuje jeden radio button, prestane dobre fungovat skupina radio buttonu:(
davis
Profil *
Řešená je: g1.chata[0].focus(); či [1],[2] podle toho na který radio chceš aby to ukázalo.

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