Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
John Ronald Reuel Tolkien:19.5.2018 17:03

Zdravím,
chtěl bych se zeptat zdali je možné, aby se při odeslání dat ze stránky (při stisknutí submitu) nesmazala všechna vyplněná pole a zašrtnuté radiobuttony.
Děkuji za odpověď.

 
Odpovědět
19.5.2018 17:03
Avatar
Lukáš
Tvůrce
Avatar
 
Nahoru Odpovědět
19.5.2018 17:15
Avatar
Neaktivní uživatel:19.5.2018 17:16

Nevím jestli se tě dobře pochopil, tak máš nějaký formulář a kdyžzmáčknneš submit a chces to udělat znovu tak to musíš vyplnit zas... Šlo by to udělat tak že by si hodnoty uložil do DB s nějakým klíčem který by si náhodně vygneroval, ten klíč by si uložil do cookie a pak až by chtěl uživatel vyplnit formulář tak by si se podívaldo cookie a vyhledal hodnoty v DB a pomocí PHP by si je vyplnil. :)

Nahoru Odpovědět
19.5.2018 17:16
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:19.5.2018 17:52

Co sem napsal špatně že mně tak hodnotíte? :)

Nahoru Odpovědět
19.5.2018 17:52
Neaktivní uživatelský účet
Avatar

Člen
Avatar
:19.5.2018 17:59
$priklad = $_POST['priklad'];
<input value="<?=$priklad?>"/>
 
Nahoru Odpovědět
19.5.2018 17:59
Avatar
Odpovídá na
Neaktivní uživatel:19.5.2018 18:02
$priklad = $_POST['priklad'];<input value="<?=$priklad?>"/>

To by šlo udělat jen kdyby to byl stejný soubor :)

Nahoru Odpovědět
19.5.2018 18:02
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:19.5.2018 18:12

A já se za tam to omlovám, pokud by to byl jiný soubor tak byt šlo takto:
Zpracovávací soubor:

$priklad = $_POST['priklad'];
header("Location: ./odeslani.php?priklad=$priklad");

Folmulář:

$priklad = $_Get['priklad'];
<input value="<php echo $priklad ?>">

Omlovám se za možné chyby psal sem to z hlavy :)

Nahoru Odpovědět
19.5.2018 18:12
Neaktivní uživatelský účet
Avatar
John Ronald Reuel Tolkien:19.5.2018 18:55

Děkuji za rady, ale spíše bych to potřeboval na ty radiobuttony a select s optionama.

 
Nahoru Odpovědět
19.5.2018 18:55
Avatar
Nahoru Odpovědět
19.5.2018 19:09
Neaktivní uživatelský účet
Avatar
Odpovídá na Lukáš
Neaktivní uživatel:19.5.2018 19:20

Lukáš se tváří, že ví. Tak proč to nenapíše? :-)

Nahoru Odpovědět
19.5.2018 19:20
Neaktivní uživatelský účet
Avatar
John Ronald Reuel Tolkien:19.5.2018 19:24

Nevadí, ale mám ještě další dotaz. Mám stránku, na které se zobrazují data z databáze. Je tam i pár selectů a radiobuttonů, které určují jak data seřadit. Nakonec je tam <input type="submit">, který to všechno vyhodnotí a zobrazí data. To mi funguje, až na to že když spustím stránku poprvé (otevřu znovu prohlížeč) žádná data se nezobrazí. Vím, čeká to na zmáčnutí toho submitu. Šlo by to nějak udělat aby se data zobrazila hned po načtení stránky ?

 
Nahoru Odpovědět
19.5.2018 19:24
Avatar

Člen
Avatar
Odpovídá na Neaktivní uživatel
:19.5.2018 19:25

Ty se tváříš, že víš, tak proč to nenapíšeš? :)

 
Nahoru Odpovědět
19.5.2018 19:25
Avatar
Odpovídá na
Neaktivní uživatel:19.5.2018 19:45

Nemyslím tebe, myslím toho s diakritikou, však se podívej, na koho to byla odpověď. :-) Já nic nevím. :-)

Editováno 19.5.2018 19:47
Nahoru Odpovědět
19.5.2018 19:45
Neaktivní uživatelský účet
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Petr Čech:19.5.2018 23:41

To samozřejmě není pravda, je úplně jedno, kde uživatel přistane, jen je třeba, aby se někde v procesu zavolal ten skript - aby se zachovalo

John Ronald Reuel Tolkien Něco podobného se dá pochopitelně udělat i pro radio buttony, selecty a vlastně cokoliv. Možná by se ti líbila knihovna Nette Forms - normálně se používá jako součást Nette frameworku, ale dá se použít i samostatně.
Další věc je, že zjevně nevíš, jak funguje odesílání formulářů a komunikace se serverem obecně - Víš vůbec, proč funguje to zachování hodnot?

Tohle:

<input value="<?= $_POST['priklad'] ?>">

funguje tak, že v superglobálním poli $_POST jsou hodnoty odeslané formulářem metodou POST, takže ty vezmeš hodnotu odeslanou tím formulářem a zobrazíš ji zpět. Když načteš stránku poprvé, formulář pochopitelně odeslaný není, proto je to prázdné - mimochodem bys to měl mít celé zaplněné chybami. To znamená, že musíš definovat alternativní zdroj dat - v tvém případě z databáze. Takže by to mohlo vypadat nějak takto:

if(isset($_POST['input_a'],$_POST['input_b'])){
        $formValues = $_POST; // všechny hodnoty jsou odeslané, zobrazíme je znovu
} else {
        // hodnoty nebyly odeslány, proto zobrazíme výchozí data z databáze
        $defaults = getDefaultData(); // vrátí pole z databáze [key => value]
        $formValues = $defaults;
}

...

<input name="input_a" value="<?= $formValues['input_a'] ?>">
<input name="input_b" value="<?= $formValues['input_b'] ?>">
Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
19.5.2018 23:41
the cake is a lie
Avatar
Odpovídá na Petr Čech
John Ronald Reuel Tolkien:20.5.2018 10:08

Trošku jsem předělal tu Vaši podmínku s tím ISSET a funguje to. Děkuji :D

Editováno 20.5.2018 10:09
 
Nahoru Odpovědět
20.5.2018 10:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.