Autor | Zpráva | ||
---|---|---|---|
Pavel015 Profil |
#1 · Zasláno: 5. 11. 2016, 19:46:48
Dobrý večer.
Potřeboval bych poradit s vkládáním dat do databáze pomocí pole. DB struktura: id -.- jmeno -.- vek Z jecas.cz ( Přidání dalšího textového pole) mám tento formulář: <form> <div class="polozky" id="polozky"> <div class="polozka" id="sablona"> <label>Jméno: <input type="text" name="policko1[]" placeholder="Zadejte jméno"></label> <label>Věk: <input type="number" name="policko2[]" value="20" size="4"></label> <label>VIP: <input type="checkbox" name="checkbox[]"></label> <button class="odebrat" onclick="odebrat(this)">× Odebrat</button> </div> </div> <button type="button" onclick="pridatPole()">+ Přidat</button> </form> <script> var prvniPolozka = document.getElementById('sablona'); var sablona = prvniPolozka.cloneNode(true); function pridatPole() { var kopie = sablona.cloneNode(true); document.getElementById('polozky').appendChild(kopie); kopie.getElementsByTagName("input")[0].focus(); } function odebrat(el) { var polozka = el.parentNode; polozka.parentNode.removeChild(polozka); } </script> Nevíte, prosím, jak docílím toho, aby se vyplněné inputy dostaly do db? Moc děkuji a přeji příjemný večer. |
||
mckay Profil |
#2 · Zasláno: 5. 11. 2016, 20:17:40
Pavel015:
V prvé řadě nejspíš přidáním atributů action a method do elementu <form> s hodnotou odpovídající php skriptu, který vytvoříte a který se o uložení hodnot do databáze postará, a s hodnotou buď get/post - dle Vašich preferencí, hodnota post je ale subjektivně vhodnější.
Ptáte-li se na to, jak docílíte toho, aby bylo možné k hodnotám přistupovat, když není zjevné, kolik jich celkem bude - doporučuji pro lepší představu ve zpracujícím php skriptu vypsat var_dump($_POST); , předvyplnit formulář a odeslat ho. V principu budete mít pole hodnot pro policko1 , policko2 a checkbox , nad nimi pustíte nějaký cyklus a předpřiravíte si dotaz, co budete posílat.
|
||
Pavel015 Profil |
#3 · Zasláno: 5. 11. 2016, 20:22:21
mckay:
Dobře, mám to upravené takto, ale jak to teď vložím do db, prosím? <!doctype html> <html> <head> <meta charset="UTF-8"> </head> <body> <?php include 'connect.php'; var_dump($_POST); ?> <form method="post"> <div class="polozky" id="polozky"> <div class="polozka" id="sablona"> <label>Jméno: <input type="text" name="policko1[]" placeholder="Zadejte jméno"></label> <label>Věk: <input type="number" name="policko2[]" value="20" size="4"></label> <label>VIP: <input type="checkbox" name="checkbox[]"></label> <button class="odebrat" onclick="odebrat(this)">× Odebrat</button> </div> </div> <button type="button" onclick="pridatPole()">+ Přidat</button> <br><br><br><br><br> <input type="submit"> </form> <script> var prvniPolozka = document.getElementById('sablona'); var sablona = prvniPolozka.cloneNode(true); function pridatPole() { var kopie = sablona.cloneNode(true); document.getElementById('polozky').appendChild(kopie); kopie.getElementsByTagName("input")[0].focus(); } function odebrat(el) { var polozka = el.parentNode; polozka.parentNode.removeChild(polozka); } </script> </body> </html> |
||
mckay Profil |
#4 · Zasláno: 5. 11. 2016, 20:36:54
Pavel015:
Toto Vám teď řekne, jak vypadá pole, které přijímáte a máte zpracovat. To využijete k tomu, abyste sestavil odpovídající skript, který to bude umět. Psát to za Vás nebudu (a pravděpodobně to neudělá ani nikdo jiný, kdo si alespoň trochu Váží svého času). Podívejte se na to, jak fungují cykly foreach a for. Těmi si připravíte data, která chcete vkládat do databáze. Pak budete potřebovat vědět, jak se píší SQL dotazy, konkrétně INSERTy. Algoritmicky pak: 1. Připojení se k databázi 2. Zaslání dotazů k vykonání 3. Ověření úspěchu operace a případné informování o chybě. 4. Ukončení spojení s databází. Samozřejmě před tím, než něco takového nasadíte do produkce budete muset zajistit ošetření uživatelského vstupu a další podobné věci. |
||
Pavel015 Profil |
#5 · Zasláno: 5. 11. 2016, 21:15:12
mckay:
Spíš neumím použít ten foreach... Mám vkládání do všechny body, co jste napsal, jen "neumím nechat projet všechny pole, aby se uložily"... Poradíte? <!doctype html> <html> <head> <meta charset="UTF-8"> <style> body { font-family: 'Geneva CE', sans-serif; font-size: 18px; } </style> </head> <body> <?php include('connect.php'); if(isset($_POST["jmeno"])){ if($_POST["jmeno"]=="") { echo "<h3>Zadej jmeno</h3>";} else if($_POST["vek"]=="") { echo "<h3>Zadej vek</h3>";} else { $dotaz = "INSERT INTO lide (jmeno,vek,vip) VALUES ('{$_POST["policko1[]"]}', '{$_POST["policko2[]"]}', '{$_POST["checkbox[]"]}');"; if (mysqli_query($spojeni,$dotaz)) {echo "<h2>Data byla vložena.</h2>";} else { {echo "<h2>Data nebyla vložena.</h2>";} } } } ?> <form method="post"> <div class="polozky" id="polozky"> <div class="polozka" id="sablona"> <label>Jméno: <input type="text" name="policko1[]" placeholder="Zadejte jméno"></label> <label>Věk: <input type="number" name="policko2[]" value="20" size="4"></label> <label>VIP: <input type="checkbox" name="checkbox[]"></label> <button class="odebrat" onclick="odebrat(this)">× Odebrat</button> </div> </div> <button type="button" onclick="pridatPole()">+ Přidat</button> <br><br><br><br> <input type="submit" value="Uložit"> </form> <script> var prvniPolozka = document.getElementById('sablona'); var sablona = prvniPolozka.cloneNode(true); function pridatPole() { var kopie = sablona.cloneNode(true); document.getElementById('polozky').appendChild(kopie); kopie.getElementsByTagName("input")[0].focus(); } function odebrat(el) { var polozka = el.parentNode; polozka.parentNode.removeChild(polozka); } </script> </body> </html> |
||
Časová prodleva: 8 let
|
0