Zachování dat z formuláře (*VYŘEŠENO*)

Zdravím

V předchozím tématu jsem řešil problém se scriptem pro zpracování dat z formuláře teť tu mám ten samý script ale jde mi oto že v uvedeném scriptu je několik kontrol kterými kkdyž data neprojdou vrátí vás to na původní stránku s hláškou a mě byzajímalo nejjednodušíí a nejefektivnější řešení toho jak zachovat vyplněná data tak abych je v případě chybného zadání mohl ve formuláři jen opravit a ne zadáváat znovu, napadlo mě uložit to do databáze normálně pak dále pracovat vracet hlášku atp a pokud by bylo vše v pořádku tak už by došlo jen k přesměrování bez zápisu v souboru registrace by se data načetla z databáze do formuláře(podle nějakého čísla nebo tak) a pak by se celý řádek tabulky z databáze vymazal aby mohlo dojít k opjetovnému zápisu správně opravených dat toto řešení m i přijde trochu zdlouhavé, pak mě napadlo posílat všechyn proměnné v url za otazníkem ajko posílám ID jenže taková url adresa naní nic moc a nikde jsem neviděl něco takového použít
určitě existuje nějaké jiné lepší řešení proveditelné v php (použil bych javascript ale ten moc neumím) jen se chci na to zeptat
pročítal jsem různá fóra ale nic moc konkrétního čistě v php jsem nenašel

předem díky za nápady

Obrázek uživatele Jiří Molnár

Zdravíme.

Něco podobného jsem řešil nedávno u klienta a vyřešil jsem to právě JavaSriptem. Je to nejelegantnější a nejrychlejší. V PHPku mě fakt nenapadá, jak tohle udělat - maximálně právě za pomocí SQL a nějaké session tabulky, kde by se relace dočasně ukládala. Ale to by bylo dost obtížné napsat.

Být vámi, toho JavaSriptu bych se nebál. Klidně vám sem pošlu svůj kód a ukážu, co to umí.

Je nutné si však uvědomit a ujasnit si, ve kterém kroku má k onomu ověření buněk dojít. Pokud až po, tedy v nějakém kroku po odeslání formuláře, lze to vyřešit PHP podmínkou jak to chcete, která se o ono ověření postará, a na základě toho spustí klasický "javascript:back" (nebo stránku s upozorněním na chyby a tlačítkem zpět na formulář, který s chová něco jako zpět v prohlížeči) a načte tak formulář s vyplněnými uživatelskými hodnotami.

Já jsem to vyřešil tak, že formulář je před odesláním zkontrolován javascriptem (podmínka je tedy napsaná v něm). Pokud povinné pole není vyplněno - formulář se neodešle a vyhodí okno s varovnou hláškou. Pokud podmínky v JS budou souhlasit, bude povoleno odeslání formuláře již dle platného PHP.

Obrázek uživatele smycma

takže jde jen o to ten scriupt který mám na ty asi 4 kontroly přepsat jako javascript přímo do souboru s formulářem a pokud by byla podmínyk splěny tak by se to odeslal na zpracuj?? tady mě ale nepadá v té jedné podmínce se pracuje z databází...

Obrázek uživatele Jiří Molnár

To by neměla být překážka - lze použít i jQuery na nějaké ověřovací mezikroky ve formuláři. Pokud se do toho chcete pustit, napište nám sem přesně krok za krokem (co se kde děje a co by to mělo dělat) a změny, které potřebujete udělat, a nějakým dobrým a jednoduchým stylem to vymyslíme...

Obrázek uživatele smycma

No krok za krokem
Za prvé je to formulář který obsahuje x položek jméno, příjmení, nick, mail, telefon, ulici, číslo popisné, město, psč a já potřebuju aby kotrola probíhala jko tomu je ve scriptu z předchozího mého fóra, jestli jsou vyplněny povinné položky, jestli je email ve správném formátu a jestly jsou telefon číslo popisné a psč skutečně čísla, v lepším případě jestli je jeméno a příjmení s velkým písmenem na začátku apodobné vychytávky ale to si mužu dodělávat sám když budu mít hotový základ tzn. to co mám v php udělat tak aby se neztrácely data a až pak aby bylo možné formulář skutečně zpracovat a zapsat do databáze

Obrázek uživatele Jiří Molnár

Pokud si vzpomínám, v tom phpku jsme vlastně ověřovali, jestli je již email v databázi. Pokud byl, tak nás hodil znovu na formulář s hláškou, že je něco špatně. Ale data již byla ztracena.

Tuto situaci tedy musíme vyřešit prvotně (ověřování jednotlivých parametrů buněk bych nechal na JS (velké písmeno, čísla, absence zavináče aj.), to bychom pořešili později).

Nabízejí se nám dvě možnosti:

- buď použijeme nějaké hotové řešení, nejlépe jQuery, které v reálném čase ověří dostupnost adresy v databázi a okamžitě vedle buňky vypsáním OK nebo křížku uživatele upozorní, že je adresa akceptovatelná či nikoliv, a phpko pak již čistě provede zápis do DB.

- nebo upravíme PHP podmínku tak, že se provede jen tzv. poloviční zápis a ve druhém kroku nám bude umožněno pouze a jen adresu z aktuálního zápisu změnit a příkazem SQL UPDATE tak aktuální proces editovat. Zde by ale bylo z bezpečnostního hlediska dobré zavést i nějaké ID uživatele, nebo tak něco...

Obrázek uživatele smycma

No se týče toho emailu rád bych viděl to jQuery
a zbatek už je čistě pro JAVA script dále kontorla velkých písmen není nutná protže se řetězec dá v PHP upravit příkazem tak aby se první písmeno automaticky změnilo na velké...

Obrázek uživatele Jiří Molnár

Souhlasím s vámi.
Na tu emailovou adresu jsem vám našel toto řešení. Dle mě elegantní a naprosto perfektní. jQuery zavolá PHP pro ověření existence emailu (v jejich případě uživatelského jména) a dle toho vypíše vedle políčka availabality status.

Je tam k dispozici rovnou i finální zdrojový kód, vše přehledné popsáno, a jak jsem říkal, je ve sloupci zaveden ještě řádek s ID uživatele - pokud jsem se dobře díval.
Ale to jistě z toho pochopíte dobře, je hezky zpracované.

Odkaz: http://youhack.me/2010/05/04/username-availability-check-in-registration...

Obrázek uživatele smycma

Hodím si to do translateru a bude to ok koukal jsem na to půjde to díky moc...

Obrázek uživatele Jiří Molnár

Nemáte zač - kdybyste měl problém s překladem nebo pak s PHPkem jako takovým, klidně napište. (Napište samozřejmě i v případě úspěchu, necháme vlákno pro vás otevřené.)

Já tu teď tedy až do sedmého srpna nebudu, ale kluci z týmu by vám určitě také uměli poradit. (Bohužel v češtině takovýchto pěkných programátorských návodů je poskrovnu. Vězte kdyby bylo, určitě bych vám jej sem poslal. Ale myslím si, že translátor si s tím hravě poradí (jsou to jednoduché věty) a zbytek již jistě pochytíte ze zdrojového kódu. Na jQuery vlastně nic měnit nemusíte a editovat si na míru budete jen PHPko - jeho zpracování tabulky a sloupce, což je pro vás známá vesnice.

Ale kdyby přeci jen něco, určitě napište...