Autor Zpráva
Dieee
Profil
Zdravím všechny,
chtěl bych se zeptat na pár otázek. Jistě než jsem sem napsal, prohledal jsem web, jestli tam něco nezjistím. Jsem hlava tupá, tak píšu sem.

Prvním problémem
1. Dělám registrační formulář v php, ale nechápu, když člověk nic nenapíše a potvrdí registraci jak udělat aby mi stránka vypsala co nevyplnil. například jako tato stránka ZDE krásně to vypíše vedle políček.

Druhým problémem
2. Před tímto registračním formulářem je stránka "registrace.html", kde si vyberte obchod v jakým chcete nakupovat. Pokud kliknete na obchod skočí to na "registrace.php" a tam by mělo být registrační formulář. Chci se zeptat jak by jsem to měl udělat celý v jednom "registrace.php" tak aby sem pořád nemusel odkazovat na další a další stránky, ale přitom tam byl i ten formulář.

"registrace.html" ---> výběr obchodu ----> "obi.html" ----> pomeranče ---> "pomerance.html" ale jen
"registrace.php" ----> výběr ochodu ---> "registrace.php" … prostě jen by se tam měnil text jinak vše by bylo jak má, myslím že je to má hodně společnýho s 1. problémem.

(Hádám, když jsem koukal do zdrojáku té stránky, že je to tím za indexem.php??? http://www.sms.cz/index.php?P_id_kategorie=5630&P_soubor=obecne%2Fregistrace.php ??? )

Děkuji za všechny odpovědi! Hlášky typu "najdi si to na netu", prostě nepochopil jsem to proto píšu sem a doufám, že mi to někdo prozradí!
panther
Profil
Dieee:
1. testovat hodnoty ve formulářových polích (isset/!empty, příp. regulární výrazy - dle toho, co očekáváš za výstup). Na odkazu to je JS, můžeš se na něj podívat. Krom JS musíš provést i serverovou kontrolu, pravděpodobně tedy PHP.
2. tohle jsem moc nepochopil, pravděpodobně chceš zobrazovat obsah stránky na základě nějaké podmínky. Na každém kroku si ukládej třeba sessionu, podle ní zobrazuj aktuální obsah. S prvním problémem to nemá společného vůbec nic.
AM_
Profil
Dieee:
Chci se zeptat jak by jsem to měl udělat celý v jednom "registrace.php"
tak to se dá udělat jednoduše v PHP podmínkou (např. registrace.php?krok=1,2,3 atd... a pak v PHP ověřovat proměnnou $_GET['registrace']). Otázkou ale je, zda to je potřeba; to, že se ti víc líbí mít v adresním řádku pořád stejný soubor, by neměl být dostatečný důvod; dobrým důvodem je např. taková podobnost dvou kroků registrace, že oba mají až na pár rozdílů stejný kód - pak je dobré to mít v jednom souboru a odlišnosti řešit podmínkami.
Dieee
Profil
Panther:
JS jsem se kouknu, ale myslim, že by to šlo udělat i v PHP ne? Stejně tam nevidím, že když teda to jméno nenapíšu, tak stránka se zachová jen vedle toho se napíše něco..jak tam napíšu - chybová hláška se napíše vedle políčka (to přece chce určit vzdálenost od políčka atd. ne?)
A to že se stránka zachová, přece souvisí s tím 2. problémem, abych na každý problém nevypracovával novou stránku.

AM_:
No mě se to libí máš pravdu, ale to že si budu vybírat nejdřív obchod pak produkt a pak ten formulář, přece je lepší to dělat v jednom php ne? Jinak jak začnu psát to ?krok=1 ... prosím malý příklad.
panther
Profil
Dieee:
že by to šlo udělat i v PHP ne?
kontrola v PHP je nutnost, nicméně nelze jím zajistit, aby se kontrola prováděla ihned (tedy před odesláním na server).

to přece chce určit vzdálenost od políčka atd.
ne, jsou tam prázdné elementy, do kterých se jen doplňuje obsah. Všechno je to o CSS. Případně se ty elementy mohou tvořit, opět - JS.
AM_
Profil
Dieee:
ale to že si budu vybírat nejdřív obchod pak produkt a pak ten formulář, přece je lepší to dělat v jednom php ne?
nevím, jak to vypadá v reálu, tak jasně lepší mi to zas nepřijde. Ale je to na tobě.

<?php switch ($_GET['krok'])
{
case 1:
?>...
<?php
break;
case 2:
?>...
<?php
}
Dieee
Profil
Panther:
<form name="form">
<input type="text" name="form2">
<input type="text" name="form3">
<a href="javascript:form();">OK</a>
</form>

<script>
function form(){

if(document.form.form2.value=="") document.write("nevyplnil jste první pole!");
else if(document.form.form3.value=="") window.alert("nevyplnil jste druhé pole!");
else if(document.form.form3.value=="" && document.form.form2.value=="") window.alert("nic jste nevyplnil!");
else
window.alert("1.pole obsahuje: "+document.form.form2.value+" a 2.pole obsahuje: "+document.forms[0].elements[1].value);
}
</script>


Takhto vypadá script malého formuláře. Ale přesně jak jsem čekal, když tam přepíšu místo window.alert na document.write, tak se mi smaže původní stránka a napíše se mi na bílou obrazovku "nevyplnil jste první pole!". Tak kam musim šoupnout to něco aby mi to zůstalo na tý stejný stránce? Poslední otázka. Moc děkuji za odpovědi

AM_
Děkuji za rady. Myslím si že máš pravdu, nemá cenu to dělat jen kvůli líbí se mi ;) A nechám to na někdy kdy to budu opravdu potřebovat!
panther
Profil
Dieee:
když tam přepíšu místo window.alert na document.write, tak se mi smaže původní stránka a napíše se mi na bílou obrazovku
Časté potíže, zajímavosti a poučné debaty

Dotaz se týká JS, přesouvám.
Dieee
Profil
panther:
Díky ;) Teď mám inspiraci, může s tím zas poprat!
Dieee
Profil
Už asi 12h se s tím pářu a fakt nechápu uplně triviální věc - Zjistil jsem, že v JS to opravdu dělat nechci (je to určitě dobrý, ale na vytváření formulářů to nechci použít, né teď). Trápí mě php a jeho používání a nikde na netu nemůžu najít odpověd protože je to určitě tak triviální.

Mám formular.html a v něm mám formulář složený z různých inputů (takže to je celý obalený form, kde action="proces.php")
V proces.php nám napsáno pokud v inputu nic nebude tak napíše hlášku "Zadej jméno", ale zobrazí se mi to na nový stránce - obyčejná nová bílá stránka!!! To nechci - chci aby se to napsalo třeba vedle toho inputu nebo nad něj nebo prostě zčervenalo Zadej jméno.

Fakt jsem nad tím dumal a napadlo mě to udělat rovnou v Formular.php a action ve formu by byl "formular.php", ale pak by ten skript kdokoliv viděl a to nechci.

Jsem asi dementní, ale chci to pochopit. "Dělat" stránky mě baví, i když mi to někdy nejde :))
PS: ani na této stránce jsem to nepochopil (možná protože je to na blbém bílé stránce!)
panther
Profil
Dieee:
ale pak by ten skript kdokoliv viděl a to nechci.
PHP nikdo neuvidí, můžeš si to zkusit.

Ve zpracování (ve scriptu, který formulář zpracovává - ať na téže, nebo na jiné stránce) si vytvoř pouze proměnnou s chybovou hláškou, kterou si vypiš tam, kde ji vypsat chceš.
_es
Profil
Dieee:
Zjistil jsem, že v JS to opravdu dělat nechci
To nechci - chci aby se to napsalo třeba vedle toho inputu nebo nad něj nebo prostě zčervenalo Zadej jméno.

Také veci spravíš len v JS, asi by ti pomohlo si trochu pozrieť na čo slúži JS a na čo PHP - alebo iné serverové skripty.
Bez znalosti úplných základov sa nezaobídeš.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0