Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js]formularz - dynamiczne pola
Forum PHP.pl > Forum > Przedszkole
lenczewski
witam, znalazłem na forum (http://forum.php.pl/index.php?showtopic=65...p;hl=dynamiczne), jednak nie do końca mi ten skrypt działa,.
chodzi o to, ze jak zmieniłem
Kod
znacznik.setAttribute('type', 'text');
znacznik.setAttribute('name', 'atr[]');
, a wformularzu dodałem pole
  1. <input type=text name="atr[]" value="">

to php nie widzi mi kolejnych pól, jest napisane tylko, że jest to tablica, jednak nie moge jej wyswietlić.

Fabian
nospor
nie echo $tablica;
a print_r($tablica)
I poczytaj w manualu o obsludze tablic bo widze ze masz duuuuze braki winksmiley.jpg

ps: przenosze
lenczewski
hej,
używam print_r() winksmiley.jpg
jednak dla print_r($_POST); wysiwetla mi ze zawartoscia jest tablica, a dla print_r($_POST["atr"]) - nic nie wyświetla ;(
nospor
Cytat
a dla print_r($_POST["atr"]) - nic nie wyświetla ;(
a mowiles ze wyswietla Array. Sie zdecyduj tongue.gif

No to pokaz co wyswietla print_r($_POST);. Pokaz dokladnie co ty z tymi polami robisz bo z pierwszego posta nic nie kumam smile.gif
Im lepiej przedstawisz problem z otoczką, tym szybciej uzyskasz odpowiedź a i nam zaoszczedzisz miejsca w bazce poprzez zminimalizowanie liczby postow winksmiley.jpg
lenczewski
Kod
  1. Atrybuty [ <a href="#" onclick="dodaj_element('pliki');">+dodaj atrybut</a> ]
  2. <script type="text/javascript">
  3. <!--
  4. function dodaj_element(kontener){
  5. var znacznik1 = document.createElement('input');
  6. znacznik1.setAttribute('type', 'text');
  7. znacznik1.setAttribute('name', 'atr[]');
  8.  
  9. var znacznik2 = document.createElement('input');
  10. znacznik2.setAttribute('type', 'text');
  11. znacznik2.setAttribute('name', 'param[]');
  12.  
  13. var kontener = document.getElementById(kontener);
  14. kontener.appendChild(znacznik1);
  15. kontener.appendChild(znacznik2);
  16. }
  17. //-->
  18. </script>
  19.  
  20. <div id="pliki">
  21. <tr><td width=150>Nazwa atrybutu</td><td>Wartość</td></tr>
  22. </table>
  23. <input type=text name="atr[]" value=""><input type=text name="param[]" value=""><br>
  24. </div>

pod dodaniu kolejnych pol w formularzu (łącznie np. 4 pola (2x atr, 2x param)) print_r($_POST) zwraca:
Kod
Array
(
    [atr] => Array
    [param] => Array
)

dla print_r($_POST["atr"]) wyswietlane jest:
Kod
Array
nospor
Cytat
dla print_r($_POST["atr"]) wyswietlane jest: array
a wczesniej mowiles ze nic....
napewno tylko Array jest wyswietlane? mi przykladowo wyswietla wszystko git (dla post):
Cytat
Array ( [atr] => Array ( [0] => a [1] => a [2] => ) [param] => Array ( [0] => [1] => [2] => ) [test2] => )

Array znaczy ze tablica. przelec foreachem po tej tablicy i bedzie git:
  1. <?php
  2. foreach ($_POST['atr'] as $key=>$value)
  3.  echo "$key - $value <br />";
  4. ?>
lenczewski
dzięcki za pomoc,
  1. <?php
  2. foreach ($_POST['atr'] as $key=>$value)
  3.  echo "$key - $value <br />";
  4. ?>
też nie działało, wiec zaczełem sprawdzać inne funkcje. miałem np. filtrowanie tablicy $_POST tuż po załadowaniu pliku (najwidoczniej tu mam błąd, ale to już inna historia).

  1. <?php
  2. $param = array_keys($_POST);
  3. $ile = count($param);
  4.  
  5. for($i=0; $i < $ile; $i++) {
  6. $_POST[$param[$i]] = ereg_replace ("(t)+", "t", $_POST[$param[$i]]);
  7. $_POST[$param[$i]] = ereg_replace (" +", " ", $_POST[$param[$i]]);
  8. $_POST[$param[$i]] = ereg_replace ("||+", "", $_POST[$param[$i]]);
  9.  
  10. $_POST[$param[$i]] = str_replace("", "", ereg_replace("(rn|n|r)", "<br />", htmlspecialchars($_POST[$param[$i]])));
  11. }
  12. ?>


Jeszcze raz dziękuje za pomoc.
Do zamknięcia.
nospor
Cytat
najwidoczniej tu mam błąd, ale to już inna historia
Nie najwidoczniej, a na 100% smile.gif

Traktujesz tablice jako string to masz taki efekt. A na przyszlosc wlac sobie error_reporting(E_ALL).
Cytat
Notice: Array to string conversion in C:\Inetpub\wwwroot\apache\test\form.php on line 37
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.