Autor Zpráva
Vilak
Profil
Nazdar, mám zde problém. Mám nějaké produkty, které můžu editovat buď všechny (tato varianta v ukázce nejde vidět), nebo jednotlivě. Pak ale taky potřebuji možnost upravit třeba 10 produktů z 20 tak, abych stiskl jen jednou "odeslat". Pro představu přikládám obrázek, kdy bych chtěl všechny "Zadáno" změnit na "Ukončeno", a u některých třeba změnit poznámku (tedy může jít třeba o změnu 10 produktů a v každém produktu může být jiná změna). Jednotlivě je upravit umím, ale jak to mám udělat najednou?

img: ctrlv.cz/shots/2020/11/03/Hzvx.png

Kód:
function product_info ($ids, $conn, $types_for_product, $status_for_product) {
        /* vypise postupne vsechny produkty daneho statusu
        * $ids - śkupina jednoho produktu, hromadne id
        * $conn - pripojenik db
        * $types_for_product - vypise vsechny firmy kam se posilaji produkty vcetne aktualniho
        * $status_for_product - vypise vsechny mozne statusy k produktu vcetne aktualniho
        */
        echo "
            <table>
                <tbody>
                    <tr>
                        <th>Typ</th>
                        <th>Firma</th>
                        <th>Produkt</th>
                        <th>Stav</th>
                        <th>Vytvoření</th>
                        <th>Poznámka</th>
                        <th colspan=\"2\">Úpravy</th>
                    </tr>
                </tbody>
            </table>
        ";
        $result = get_data_from_db($ids, $conn);
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                $all_types = types_for_product($types_for_product, $row);
                $all_firms = status_for_product($status_for_product, $row);
                echo "
                    <form action=\"modules/products/edit-product.php\" method=\"POST\"><table><tbody>
                    <tr>
                        <input type=\"hidden\" value=\"".$row['id']."\" name=\"id\">
                        <input type=\"hidden\" value=\"".$row['ids']."\" name=\"ids\">
                        <td>".$all_types."</td>
                        <td><input type=\"text\" name=\"firm\" value=\"".$row['firm']."\" class=\"form_firm\"></td>
                        <td><input type=\"text\" name=\"product\" value=\"".$row['product']."\" class=\"form_product\"></td>
                        <td>".$all_firms."</td>
                        <td><input type=\"text\" name=\"creation_date\" value=\"".$row['creation_date']."\" readonly></td>
                        <td><input type=\"text\" name=\"note\" value=\"".$row['note']."\"></td>
                        <td><input type=\"submit\" value=\"Smazat\" name=\"delete-single\"></td>
                        <td><input type=\"submit\" value=\"Upravit\" name=\"edit-single\"></td>
                    </tr>
                    </tbody></table></form>
                ";
            }
        }
        echo "<table><tr><td colspan=\"3\"><a href=\"products.php\"><button>Vrátit zpět beze změn</button></a></td></tr></table>";
    }

Je to rozpracovaná verze, vše budu předělávat do bootstrapu a tedy "table" měnit na divy a budu to trochu jinak formátovat, aby to bylo přehlednější.

Jinak mě napadlo to udělat nějak pomocí checklistu, ale formulář ve formuláři udělat nejde co vím a pokud bych to udělal jen přes checlisty, tak pokud by se měla udělat jen změna u jendoho produktu, muselo by se vždy zaškrtnout, u kterého, a to je zbytečné zdržování.

Předem díky moc za všechny rady.
anonym_
Profil *
Vilak:
Pokud chceš upravovat více záznamu naráz, musíš je mít v jednom formuláři.
Vilak
Profil
To vím. Nicméně jak pak dokážu upravit samostatné produkty zvlášť, abych u každého řádku měl "upravit" a neměl jen dole "upravit vše".
anonym_
Profil *
Vilak:
Budou to také submity a pak budeš kontrolovat, zda byl odeslán submit na konkrétním řádku, nebo “submit_all”.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0