[ 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 | 268
Bydlisko: Levice
NapísalOffline : 20.03.2008 8:28 | formular-editacia

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 | 51
Bydlisko: Bratislava
NapísalOffline : 20.03.2008 8:35 | formular-editacia

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 | 268
Bydlisko: Levice
Napísal autor témyOffline : 20.03.2008 9:41 | formular-editacia

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 | 96
NapísalOffline : 20.03.2008 18:21 | formular-editacia

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


 [ Príspevkov: 4 ] 


formular-editacia




© 2005 - 2025 PCforum, edited by JanoF