IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
Pavel Soukup
Člen
Avatar
Pavel Soukup:26.5.2018 21:22

Ahoj všichni, mohu se zeptat jak udělat form ve switchi?
Pokud někdo má nějaký návrh tak moc děkuju

 
Odpovědět
26.5.2018 21:22
Avatar
Petr Čech
Tvůrce
Avatar
Odpovídá na Pavel Soukup
Petr Čech:27.5.2018 0:07

Erm... co je je form ve switchi?

Nahoru Odpovědět
27.5.2018 0:07
the cake is a lie
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Petr Čech
vajkuba1234:27.5.2018 3:32

Asi mysli, ze mu kazdy case vrati jinej form...

Nahoru Odpovědět
27.5.2018 3:32
No hope, no future, JUST WAR!
Avatar
Pavel Soukup
Člen
Avatar
Odpovídá na Petr Čech
Pavel Soukup:27.5.2018 14:52

potřeboval bych mít form ve switchi, který mi bude posílat nějaké data, ale když ten form odešlu ve switchi, tak se mi žádné data přes POST do php nepošlou

 
Nahoru Odpovědět
27.5.2018 14:52
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Pavel Soukup
David Jančík:27.5.2018 15:20

Přečti si prosím: Jak získáš kvalitní řešení na svůj dotaz ve fóru?
A projdi si základní konstrukce PHP
Tvůj dotaz nedává smysl a postrádá základní informace, navíc má nic neříkající titulek.
Pokud chceš získat na svoji otázku kvalitní odpověď, budeš muset vynaložit nějaké úsilí, jinak ti tu nikdo nepomůže.

Nahoru Odpovědět
27.5.2018 15:20
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Pavel Soukup
Člen
Avatar
Odpovídá na David Jančík
Pavel Soukup:27.5.2018 16:22

Omlouvám se, jestli to je nesrozumitelné, ale je to dosti těžké popsat.

mohu tedy přiložit kód a na něm to zkusit popsat.

switch ($_POST["rozdeleni"]) {
                                                        case '1':
                                                        $rozdeleni = unserialize($plugin);
                                                        echo '<form action="" method="POST">';
                                                                foreach ($rozdeleni as $value) {
                                                                        echo '<input type="checkbox" name="checkboxvar[]" value="'.$value.'">'.$value.'<br>';
                                                                }
                                                                        echo '<input type="submit" value="Submit" name="submit">';
                                                        echo '</form>';

                                                        if (isset($_POST["submit"])) {
                                                                if (!empty($_POST["checkboxvar"])) {
                                                                        foreach ($_POST["checkboxvar"] as $value) {
                                                                                echo $value."<br>";
                                                                        }
                                                                }
                                                        }
                                                                break;

                                                        case '2':
                                                                break;
                                                        case '3':
                                                                break;

                                                        default:
                                                                echo "nebyl poslán požadavek";
                                                }

Zde se snažím ve switchi poslat form, který se má hlásit hned v podmínce níže, když jsem zkoušel pouze toto mimo switch:

$rozdeleni = unserialize($plugin);
                                                        echo '<form action="" method="POST">';
                                                                foreach ($rozdeleni as $value) {
                                                                        echo '<input type="checkbox" name="checkboxvar[]" value="'.$value.'">'.$value.'<br>';
                                                                }
                                                                        echo '<input type="submit" value="Submit" name="submit">';
                                                        echo '</form>';

                                                        if (isset($_POST["submit"])) {
                                                                if (!empty($_POST["checkboxvar"])) {
                                                                        foreach ($_POST["checkboxvar"] as $value) {
                                                                                echo $value."<br>";
                                                                        }
                                                                }
                                                        }

tak všechno perfektně fungovalo, ale v tom switchi nedostanu zpětnou vazbu, což je ten problém, který jsem se snažil vysvětlit.
Pokud budete vědět co s tím, tak vám budu vděčný.

 
Nahoru Odpovědět
27.5.2018 16:22
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Pavel Soukup
David Jančík:27.5.2018 17:00

Neber mě prosím nijak zle, ale přečti si prosím to, co jsem ti poslal. Já chápu, že tě štve, že ti to nejde a že nevíš co s tím a hledáš tu pomoc, nicméně pokud budeš neustále dělat to, co děláš - psát věty tak, jak ti jdou pod ruku - opakuješ se, popis problému je nic neříkající a ani si nedáš tu práci zformátovat kód, který sem dáváš, nenapíšeš, co ti to vypisuje a co očekáváš, že ti to má vypsat, co jsi zkusil apod..., tak se nikam neposuneš, protože tím, že ty nevěnuješ svůj čas tomu, abys sepsal kvalitní otázku, tak nikdo nebude věnovat svůj čas tomu, aby ti na ni odpověděl.

Nahoru Odpovědět
27.5.2018 17:00
Zapomeň, že je to nemožné a udělej to ;)
Avatar
Pavel Soukup
Člen
Avatar
Odpovídá na David Jančík
Pavel Soukup:27.5.2018 17:44

Dobře, zkusím se tedy více snažit.
Snažím se udělat plugin, který bude obhospodařovat ostatní pluginy. Mojí úlohou je, abych je roztřídil do 3 bloků a to na důležité, méně důležité a nedůležité pluginy. Ty si uživatel sám roztřídí podle toho, jaké pluginy jsou pro něj ty nejdůležitější a které méně.

Udělal jsem si form, podle kterého se uživatel bude rozhodovat do jakého bloku, bude chtít umístit svoje označené pluginy, zde je form.

echo '<form action="" method="post>'
               '<select id="pole" name="rozdeleni" class="select-field">'.
                       '<option value="">select allocation</option>'.
                       '<option value="1">important</option>'.
                       '<option value="2">less important</option>'.
                       '<option value="3">unimportant</option>'.
               '</select>'.

Po vybrání do jakého bloku chce uživatel přidat svoje pluginy, se dostávám k podmínce, která zkoumá, jestli je ve formu nějaká, hodnota.
Pokud nějaká hodnota je obsažena, tak následuje switch, ve kterém chci vybírat pluginy, které chce uživatel uložit, zde je kód:

if (!empty($_POST["rozdeleni"])) {

        switch ($_POST["rozdeleni"]) {
                case '1':
                $rozdeleni = unserialize($plugin);
                        echo '<form action="" method="POST">';
                                foreach ($rozdeleni as $value) {
                                        echo '<input type="checkbox" name="checkboxvar[]" value="'.$value.'">'.$value.'<br>';
                                                                }
                                        echo '<input type="submit" value="Submit" name="submit">';
                         echo '</form>';

                        if (isset($_POST["submit"])) {
                                if (!empty($_POST["checkboxvar"])) {
                                        foreach ($_POST["checkboxvar"] as $value) {
                                                echo $value."<br>";
                                        }
                                }
                        }
                         break;

                case '2':
                        break;
                case '3':
                         break;

                default:
                        echo "nebyl poslán požadavek";
        }
}

Pokud si vyberu, že chci nejdříve vybrat důležité pluginy, tak se dostanu do switche s case 1 a tam si z databáze vyvolám všechny pluginy, vedle kterých je input typu checkbox, pro označení pluginů, které chci roztřídit.

Po označení pluginů, uživatel odešle tento form a měla by se splnit podmínka, která vypíše, všechny označené pluginy(echo $value).

Zde je ale problém, že takto ve switchi se mi vybrané hodnoty po odeslání formuláře neobjeví na stránce. Po odeslání mám prázdnou stránku bez výstupů.

Když jsem si zkoušel tento formulář, hodit mimo switch, tak mi normálně fungoval a bez problému se mi echovali, vybrané pluginy, zde přikládám kód, který jsem hodil mimo switch:

echo '<form action="" method="POST">';
        foreach ($rozdeleni as $value) {
                echo '<input type="checkbox" name="checkboxvar[]" value="'.$value.'">'.$value.'<br>';
                                                                }
                echo '<input type="submit" value="Submit" name="submit">';
echo '</form>';

if (isset($_POST["submit"])) {
        if (!empty($_POST["checkboxvar"])) {
                foreach ($_POST["checkboxvar"] as $value) {
                        echo $value."<br>";
                }
        }
}

Bohužel ve switchi mi tento postup nefunguje a nevím proč.
Snažil jsem se popsat můj problém podrobně a srozumitelně, ale pokud něčemu nebudete rozumět, tak se budu snažit problém ještě více přiblížit.
Děkuju.

 
Nahoru Odpovědět
27.5.2018 17:44
Avatar
Petr
Člen
Avatar
Petr:28.5.2018 9:00

Je mi líto, ale obě varianty, jak jsou popsány (včetně switche) mi krásně fungují. Takže problém bude v datech.

 
Nahoru Odpovědět
28.5.2018 9:00
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 9 zpráv z 9.