Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Avatar
Martin2525
Člen
Avatar
Martin2525:14.6.2020 23:42

Ahojte, som úplný začiatočník, a začal som sa učiť PHP predvčerom z netu, nakoľko si potrebujem niečo jednoduché napísať.

Potrebujem následujúcu vec:
Mám následujúci obyčajný form:

<form action="form.php" method="post">
<p>Meno: <input type="text" name="meno"></p>
<p>Priezvisko: <input type="text" name="priez"></p>
<p>Rodne cislo: <input type="text" name="rc"></p>
<p>Mesto: <input type="text" name="mesto"></p>
<p><input type="submit" value="Ulozit udaje"></p>
</form>

Ako ho zopakujem toľko krát, koľko krát chce user?
Potrebujem vytvoriť pole, napríklad $uzivatel, s uvedenými stĺpcami, ktoré mám hore v tom forme, a následne ich vypísať cez foreach.
Pri vstupe môžu nastať situácie, že je potrebné zadať od 1 až do 6 rôznych užívateľov.

Zkusil jsem: Dokážem uložiť pomocou $_POST do poľa len prvého užívateľa, a toho potom vypísať.
Neviem ten cyklus zopakovať nejakým pridaním tlačítka "pridať užívateľa"
Neviem, či to mám cykliť podľa nejakej podmienky, naviazanej na tlačítko pridať ďalšieho usera a pod.
Neviem, či mám opakovať aj html, alebo len php skript.

Rád by som sa to naučil a zmákol to, vedeli by ste ma prosím naviesť ?

Nepotrebujem nutne tieto údaje ukladať do DB.

Chci docílit: Užívateľ príde na stránku, vloží určitý počet userov aj s hodnotami,
tie si potom už viem zobraziť v určitom texte ktorý si user stiahne ako PDF.
Ďakujem.

 
Odpovědět
14.6.2020 23:42
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.6.2020 7:46

javascriptem?

<div id=mujdiv></div>
<script>
var div, str;
str = '\
<p>Meno: <input type="text" name="meno[]"></p>\
<p>Priezvisko: <input type="text" name="priez[]"></p>\
<p>Rodne cislo: <input type="text" name="rc[]"></p>\
<p>Mesto: <input type="text" name="mesto[]"></p>\
';
div = document.getElementById('mujdiv');
div.innerHTML += str;
div.innerHTML += str;
div.innerHTML += str;
</script>

https://jsfiddle.net/54w073vu/

 
Nahoru Odpovědět
15.6.2020 7:46
Avatar
Martin2525
Člen
Avatar
Odpovídá na Peter Mlich
Martin2525:15.6.2020 9:56

Vďaka za tip.

Ako som povedal, som pár dňový začiatočník.
Momentálne to mám takto, kde si zaplním prvý riadok poľa, a aj ho vypíšem

<form action="index.php" method="post">
<p>Meno: <input type="text" name="meno"></p>
<p>Priezvisko: <input type="text" name="priez"></p>
<p>Rodne cislo: <input type="text" name="rc"></p>
<p>Mesto: <input type="text" name="mesto"></p>
<p><input type="submit" value="Ulozit udaje"></p>
</form>

<?php

 $meno = $_POST['meno'];
   $priez = $_POST['priez'];
   $rc = $_POST['rc'];
   $mesto = $_POST['mesto'];


   $kandidat[] = array("meno" => "$meno", "priez" => "$priez", "rc" => "$rc", "mesto" => "$mesto");



  echo $kandidat[0]["meno"];
  echo $kandidat[0]["priez"];

Ako presne tam napasujem ten js, aby si user sám mohol vybrať, koľko užívateľov zadá, resp koľko krát ten form vyplní?
Vďaka.

 
Nahoru Odpovědět
15.6.2020 9:56
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.6.2020 10:30

Vazne?
Obalis ho do funkce a funkci zavolas na tlacitko pridat.
A v php bys mel odfitrovat prazdne polozky.

<form action="index.php" method="post">
<div id=mujdiv></div>
<p><input type="button" value="pridat" onclick="xxx()"></p>
<p><input type="submit" value="Ulozit udaje"></p>
</form>
<script>
function xxx() {
...
}

xxx(); // aby pridal prvni formular
</script>

Stejne bych ty inputy prejmenoval jinak, ale to by vyzadovalo slozitejsi kod. Takhle bys musel pridat nekde jeste pocet zkopirovani, aby se ti to lepe zpracovavalo. Coz neni asi problem. A nebo si stanovis limit max 20 pridani a pak to ignorujes.

name="item[0][meno]"
name="item[0][cislo]"
name="item[1][meno]"
name="item[1][cislo]"
 
Nahoru Odpovědět
15.6.2020 10:30
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:15.6.2020 10:37

https://jsfiddle.net/jods8w65/

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
15.6.2020 10:37
Avatar
Martin2525
Člen
Avatar
Odpovídá na Peter Mlich
Martin2525:15.6.2020 10:39

Áno, toto som potreboval, už mi to na prvý pohľad ide, idem sa s tým hrať.
Ďakujem pekne.

 
Nahoru Odpovědět
15.6.2020 10:39
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 6 zpráv z 6.