Autor | Zpráva | ||
---|---|---|---|
Nobbie Profil |
Zdravím všechny, již asi dva dny se snažím vyřešit možnost, kterou zde uvedu. Jsem v podstatě začátečník a nevím, zda to dělám správně a než jsem zadal dotaz, snažil jsem se googlit a googlit. Jestli někdo řekne, že špatně, tak je to možné, ale to asi proto, že jsem v tom případě nevěděl jak hledat.
Potřebuji mít formulář, kde budu mít dvě tlačítka Akce1 a Akce2. Když kliknu na Akce1, tak se má vypsat echo s input a PHP proměnnou ve value (proměnná je aktuální datum). No a pokud kliknu na Akce2, tak bych potřeboval, aby se Akce1 jedna smazala a nahradilo se to echem Akce2 (opět input s PHP proměnnou s aktuálním datem + 7 dní ve value) a naopak (pokud je první vypsaná Akce2 a kliknu na Akce1, potřebuji, aby se Akce2 vymazala a vypsala se Akce1). Jen podotýkám, že $PHPpromenna není potřeba řešit. Pouze funkce zobrazení inputů. Asi je možné provést celý příkaz v JS, ale tam jsem totální neznalec, sice jsem se snažil vyřešit to podle spousty příkladů, ale nikdy mi to nefungovalo :( Pokud se najde někdo, kdo bude ochoten pomoci, budu moc rád, protože jsem opravdu v koncích - (případně i jinou možnost, než mám já - nevím, zda mám vůbec dobrou ideu). <form> <INPUT type="submit" name="Akce1" value="Akce1"> <INPUT type="submit" name="Akce2" value="Akce2"> <?php $pole = '<input type="text" name="akce1" value="'.$PHPpromenna.'">'; $pole2 = '<input type="text" name="akce2" value="'.$PHPpromenna.'">'; isset ($_POST['akce1']) ? $_POST['akce1'] : ""; if(isset($_POST['akce1'])){ echo $pole;} isset ($_POST['akce2']) ? $_POST['akce2'] : ""; if(isset($_POST['akce2'])) { echo $pole2;} ?> </form> Momentálně mi to vypíše pouze inputy, ale nesmaže, zkoušel jsem nespočet různých možností a přepsání kódu, ale nevím jak na to. Tady tohle je to, na čem stavím. |
||
Tomáš123 Profil |
#2 · Zasláno: 5. 4. 2015, 18:09:54
Nobbie:
Ja to vidím takto: <?php if(isset($_POST['akce1'])) echo $pole1; if(isset($_POST['akce2'])) echo $pole2; ?> |
||
Nobbie Profil |
#3 · Zasláno: 5. 4. 2015, 18:32:52
Tomáš123:
Jo, tohle je skvělý zjednodušení kódu, ale bohužel to neřeší to, že pokud kliknu na akci2, že se má smazat akce1 a opačně. |
||
Tomáš123 Profil |
Nobbie:
„že se má smazat akce1 a opačně“ Ako zmazať? Veď server stále generuje novú stránku. Schválne si zmeň metódu na GET , aby si videl v adresnom riadku, ktoré odosielacie tlačítko je práve aktuálne.
Inak, kde sa tie staré hodnoty uchovávajú? V hodnote <input> -u? Nie je problém predsa len v tej premennej, ktorá sa tam vpisuje? Podľa kódu ide stále o rovnakú premennú?
|
||
Nobbie Profil |
Tomáš123:
No to je právě to, co si nejsem pořádně jistý, že v PHP jde. Ale jak jsem popisoval: Když kliknu na submit Akce1 - vypíše se input se svým unikátním "name" a "value" s proměnnou (aktuální datum). Když kliknu na submit Akce2 - vypíše se opět input se svým unikátním "name" a "value" s jinou proměnnou (aktuální datum + 7 dní). Já ale potřebuji, aby input Akce1 po kliku na Akci2 zmizel. Ten kód co teď je, ty inputy zobrazí, ale už nesmaže jeden druhého - pokud jeden z nich již existuje - pokud ne, má vypsat, ale pokud ano, má ten druhý smazat. O to mi právě jde. |
||
Michales Profil |
#6 · Zasláno: 5. 4. 2015, 18:57:13
Řekl bych ze buď chceš načítání pomocí ajaxu, nebo skrýváni a odkrývání textu. Ale možná se také mýlím.
|
||
Tomáš123 Profil |
Nobbie:
Aha, už chápem. Chceš, aby na začiatku boli dostupné obidve odosielacie tlačítka, ale po odoslaní už iba to, na ktoré sa nekliklo. <?php $pole1 = '<input type="text" name="akce1" value="'.$PHPpromenna.'">'; $pole2 = '<input type="text" name="akce2" value="'.$PHPpromenna.'">'; if(empty($_POST['Akce1']) and !empty($_POST['Akce2'])) :?> //Pôvodne sa pracovalo so $_POST['akce1'] <form method="GET" action=""> <?php echo $pole2 ?> <input type="submit" name="Akce1" value="Akce1"> </form> <?php elseif(empty($_POST['Akce2']) and !empty($_POST['Akce1'])) :?> <form method="GET" action=""> <?php echo $pole1 ?> <input type="submit" name="Akce2" value="Akce2"> </form> <?php else :?> <form method="GET" action=""> <input type="submit" name="Akce1" value="Akce1"> <input type="submit" name="Akce2" value="Akce2"> </form> <?php endif ?> Chyba bola v kombinácii metód POST a GET. |
||
Tomáš123 Profil |
#8 · Zasláno: 6. 4. 2015, 19:20:20
Nobbie:
Upravený kód: <?php $pole1 = '<input type="text" name="akce1" value="'.$PHPpromenna.'">'; $pole2 = '<input type="text" name="akce2" value="'.$PHPpromenna.'">'; if(empty($_GET['Akce1']) and !empty($_GET['Akce2'])) :?> <form method="GET" action=""> <?php echo $pole2 ?> <input type="submit" name="Akce1" value="Akce1"> </form> <?php elseif(empty($_GET['Akce2']) and !empty($_GET['Akce1'])) :?> <form method="GET" action=""> <?php echo $pole1 ?> <input type="submit" name="Akce2" value="Akce2"> </form> <?php else :?> <form method="GET" action=""> <input type="submit" name="Akce1" value="Akce1"> <input type="submit" name="Akce2" value="Akce2"> </form> <?php endif ?> |
||
Nobbie Profil |
Tomáš123:
Opravdu moc děkuji za pomoc, ale bohužel to nebylo to co jsem potřeboval. Trošku mě zradili vědomosti základů HTML a pomýšlel jsem na vnořený FORM do FORM. Což samozřejmě nejde a Michales měl pravdu, hledal jsem načítání pomocí AJAXu. Nakonec jsem AJAXový tlačítka s pomocí jQuery použil na jinou funkci (vytvoření/odstranění nového řádku s inputama a jejich číslováním). Stejnou funkci se pokusím nahodit na to, co potřebuji s tím datumem. Nicméně ti opravdu moc děkuji za pokus mi pomoci. Tvůj příklad jsem použil alespoň na definici, pokud je nějaká hodnota posílaná z jedný stránky na druhou prázdná. if(empty($_GET['hodnota_id'])) {$hodnota_id = '';} else {$hodnota_id = ($_GET['hodnota_id ']);}; |
||
Časová prodleva: 9 let
|
0