Autor Zpráva
frauen
Profil *
Zdravím,

mám vytvořeno dynamické přidávání kategorií a položek do formuláře pomocí JS a potřeboval bych pomocí PHP vypsat jejich hodnoty.

Pro výpis kategorií jsem použil:
for ($i = 0; $i < count($_POST['category']); $i++) {
    echo '<p class="category">Kategorie: <input type="text" name="category[]" size="50" value="' . $_POST['category'][$i] . '"> <button type="button" onclick="$(this).closest(\'p\').remove();">Odebrat</button></p>';
}

Nevím však, jak mám vypsat položky, aby mi sedělo to, že například pod danou kategorií byly 3 různé položky, pod jinou např. 5 apod. Děkuji.
Tori
Profil
To je natolik spojené s předchozím dotazem, že jste skoro mohl pokračovat tam :)
Tlačítko na přidání položky by mělo v JavaScriptu dostat ID kategorie, ke které patří, a přidané inputy by se ukládaly do vnořeného pole každý ke své kategorii. Příklad pro kategorii s ID 3:
<input type="text" name="item[3][]" size="80"> .... <textarea name="description[3][]"></textarea>

A v PHP to zpracovat vnořeným cyklem:
for ($i = 0; $i < count($_POST['category']); $i++) {
    echo '<p class="category">Kategorie: <input type="text" name="category[$i]" size="50" value="' . $_POST['category'][$i] . '">
       <button type="button" onclick="$(this).closest(\'p\').remove();">Odebrat</button></p>';
    for ($j = 0; $j<count($_POST['item'][$i]); $j++)  {
      echo "<p>Položka:<br><input type='text' name='item[$i][]' size='80' value='".$_POST['item'][$i][$j]."'> 
        Cena: <input type='text' size='5'> <button type='button'>Odebrat</button><br>Popis:<br>
        <textarea cols='50' rows='2' name='description[$i][]'>".$_POST['description'][$i][$j]."</textarea></p>";
      }
}
frauen
Profil *
Tori:
Tlačítko na přidání položky by mělo v JavaScriptu dostat ID kategorie, ke které patří, a přidané inputy by se ukládaly do vnořeného pole každý ke své kategorii
To mě napadlo, jen nevím, jak bych to měl v JS přidělat. Mohl bych tě poprosit o pomoc?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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