Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
formular-editacia

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268
Bydlisko: Levice
Príspevok NapísalOffline : 20.03.2008 8:28

Mam formular, ktoreho validitu vstupnych udajov po odoslani v tom istom php subore kontrolujem. Ak sa vyskytne chyba, vypise priamo nad formular, ze aka chyba sa stala a nasledne zobrazi formular s uz zadanymi udajmi. Riesim to takto napr.
Kód:
<input class="FormInputTextx" type="text" name="email" maxlength="48"  value="<? echo $_POST['email']?>" />
Teda to echo $_POST['email'] mi vypise po odoslani povodnu hodnotu do kolonky email.
Po spravnom odoslani sa udaje ulozia do databazy.

Problem je tu: chcem spravit aj editaciu. Teda ak uzivatel chce zmenit svoj clanok, ktory uz je v databaze, tak mu necham zobrazit opat taky isty formular, s tym rozdielom, ze uz bude mat vyplnene polia, ktore natiahne z databazy. V tomto pripade to riesim takto /predchadza tomu samozrejme natiahnutie dat z Mysql a potom zobrazenie:
Kód:
<input class="FormInputTextx" type="text" name="email" maxlength="48"  value="<? echo $email; ?>" />
Cize tu uz vypise priamo hodonotu retazca email z databazy. No a teraz ked to uzivatel zmeni /okrem emailu su tam samozrejme aj ine polozky/ a odosle formular napr. s nejakou chybou, tak uz tam neni to $_POST['email'], ale $email, cize mu tam nenecha uz upravene hodnoty, ale povodne z databazy, ktore musi opat prepisat ...

Ako to riesite vy, viete poradit? Dufam, ze som to vysvetlil dobre...


Offline

Správca fóra
Správca fóra
formular-editacia

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51
Bydlisko: Bratislava
Príspevok NapísalOffline : 20.03.2008 8:35

Napriklad si to mozes hodit do jednej premennej a potom ju vkladat do formulara:
Kód:
$email_value = isset($_POST['email']) ? $_POST['email'] : (isset($email) ? $email : '');

Pouzitie:
Kód:
<input class="FormInputTextx" type="text" name="email" maxlength="48"  value="<? echo $email_value; ?>" />


ALEBO mozes pouzit funkciu - univerzalnejsi sposob:
Kód:
function getValue($var)
{
   global ${$var};
   return isset($_POST[$var]) ? $_POST[$var] : (isset(${$var}) ? ${$var} : '');
}

Pouzitie:
Kód:
<input class="FormInputTextx" type="text" name="email" maxlength="48"  value="<? echo getValue('email'); ?>" />







_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
formular-editacia

Registrovaný: 07.08.06
Prihlásený: 18.11.21
Príspevky: 947
Témy: 268
Bydlisko: Levice
Príspevok Napísal autor témyOffline : 20.03.2008 9:41

No to je vyborny sposob stenley! Teda ak existuje $_POST['email'], bude mat retazec hodnotu $_POST['email'], a ak existuje retazec/z databazy/ $email, bude mat retazec hodnotu toho retazca z databazy $email. Super, presne toto som potreboval.

Ten druhy univerzalny sposob mi zas usetri trochu roboty :)
Dakujem!!!


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3984
Témy: 96
Príspevok NapísalOffline : 20.03.2008 18:21

myslímj že aj mne pomohol tým univerzálnejším spôsobom


Odpovedať na tému [ Príspevkov: 4 ] 


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra