Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dodawanie pola formularza - zapisuje tylko ostatnie pole!
Forum PHP.pl > Forum > Przedszkole
kleszcz12
Witam, mam problem - 

mam coś takiego:

  1. <html> 
  2. <head> 
  3.  
  4. <script type="text/javascript"> 
  5.  
  6. function dodaj_przycisk() 
  7.   var ilosc=document.getElementById("licznik"); 
  8.   var tmp=ilosc.value; tmp++; 
  9.   ilosc.setAttribute("value",tmp); 
  10.   var id_name="imie"+tmp; 
  11.  
  12.   var sekcja=document.getElementById("sekcja_przyciskow"); 
  13.   var nowy_input=document.createElement("input"); 
  14.  
  15.   nowy_input.setAttribute("type","text"); 
  16.   nowy_input.setAttribute("id",id_name); 
  17.   sekcja.appendChild(nowy_input); 
  18.   sekcja.appendChild(document.createElement("br")); 
  19.  
  20. </script> 
  21. </head><body> 
  22. <form action="Przetworz.php" >
  23. <input type=submit name=submit>
  24.   <a href="javascript:;" onclick="dodaj_przycisk();">Dodaj cos!</a> 
  25.   <input type="hidden" name="obsada"value=0 id="licznik"> 
  26.   <div id="sekcja_przyciskow"></div> 
  27.    
  28.  
  29. </body> 
  30. </html>


Po kliknięciu np 5x na dodaj coś pojawia się 5 pól, potem po kliknieciu wyślij, tylko wartość ostatniego pola jest zapisywana do pliku txt.



pozdr.
mike
Nie name="obsada" tylko name="obsada[]". Wtedy dostaniesz tablicę a nie tylko ostatnia wartość.
kleszcz12
teraz zapisuje "Array"

  1. <a href="javascript:;" onclick="dodaj_przycisk();">Dodaj cos!</a>
  2. <input type="hidden" name="obsada[]"value=0 id="licznik">
  3. <div id="sekcja_przyciskow"></div>
mike
Cytat(kleszcz12 @ 12.06.2008, 16:08:00 ) *
teraz zapisuje "Array"
No nie przesadzaj.
Dostajesz tablicę, więc przejdź pętlą po jej elementach i zapisz każdy z osobna.

Myślenie nie boli. Spodziewałeś się gotowca?
kleszcz12
Cytat
Dostajesz tablicę, więc przejdź pętlą po jej elementach i zapisz każdy z osobna.




...a konkretniej...? raczej zielony jestem w php  wstydnis.gif
nospor
  1. <?php
  2. $tablica = $_POST['twojepole']; //to jest twoja tablica z forma
  3. //teraz foreachem lecisz po niej
  4. foreach ($tablica as $wartosc)
  5. echo $wartosc;
  6. ?>

Ja ci tu wyswietlam na ekran wartosci, a ty rob z nimi co chcesz.
kleszcz12
Warning: Invalid argument supplied for foreach() in /home/KONTA/WWW/PREMIUM/.../dodaj.php on line 13
nospor
ale pokaz caly kod jak napisales, wlacznie z formularzem.
Pewnie przekazales zly index w poscie
kleszcz12
kawałek zapisu:

  1. <?php
  2. <b> Obsada:</b></font><br>'.$_POST['obsada2'].'
  3. ?>




poniżej mam;

formularz:

  1. <a href="javascript:;" onclick="dodaj_przycisk();">Dodaj cos!</a> 
  2.   <input type="hidden" name="obsada[]"value=0 id="licznik"> 
  3.   <div id="sekcja_przyciskow"></div> 



ii..:

  1. <?
  2.   $tablica = $_POST['obsada']; 
  3. foreach ($tablica as $obsada2)
  4.   echo $obsada2;
  5.   ?>


pojawia sie blad a po kliknieciu wyslij, nic nie zapisuje.
aha...i wyświetla tylko ostatnie pole...tzn wyświetla ostatnie pole, a nie zapisuje nic...
skibson20
Cytat(kleszcz12 @ 14.06.2008, 13:18:14 ) *
kawałek zapisu:

  1. <?php
  2. [b] Obsada:[/b]
  3. '.$_POST['obsada2'].'
  4. ?>




poniżej mam;

formularz:

  1. <a href="javascript:;" onclick="dodaj_przycisk();">Dodaj cos!</a>
  2. <input type="hidden" name="obsada[]"value=0 id="licznik">
  3. <div id="sekcja_przyciskow"></div>



ii..:

  1. <?php
  2. $tablica = $_POST['obsada']; 
  3. foreach ($tablica as $obsada2)
  4. echo $obsada2;
  5. ?>


pojawia sie blad a po kliknieciu wyslij, nic nie zapisuje.
aha...i wyświetla tylko ostatnie pole...tzn wyświetla ostatnie pole, a nie zapisuje nic...


nie powino byc
  1. <?php
  2. foreach ($tablica as $obsada2) {
  3. echo $obsada2;
  4. }
  5. ?>
kleszcz12
też nie działa... :
nospor
@skibson20 proponuje ci dokladna lekture manuala i zobaczyc co robi foreach a nie strzelasz

@kleszcz12 pojawia sie blad bo kod co ci podalem masz wykonac po wyslaniu forma. Takie cos jak instrukcja warunkowa by sie przydalo.
Nie zapisuje nic bo pisalem ci ze kod dalem ci do wyswietlania. Ty miales to zamienic na swoj zapis
wyswietla ostatnie? Przeanalizuj swoj kod, popatrz co zwiera $_POST (print_r($_POST))
Biadolic ze nie dziala i ze jest sie zielonym kazdy potrafi. Ale bylo by milo jakby sie troche sprobowalo samemu obczaic co jest źle.
kleszcz12
Cytat
Takie cos jak instrukcja warunkowa by sie przydalo.


Ok z tym sobie poradzę...

 
  1. <?php
  2.   
  3.   if ($submit == TRUE) {
  4. $tablica = $_POST['obsada']; //to jest twoja tablica z forma
  5. //teraz foreachem lecisz po niej
  6. foreach ($tablica as $obsada2)
  7.   echo $obsada2;
  8.   }
  9.  
  10. ?>







Cytat
Nie zapisuje nic bo pisalem ci ze kod dalem ci do wyswietlania.


Ok rozumiem - echo, ale na co to zamieć żeby był zapis?



Cytat
wyswietla ostatnie? Przeanalizuj swoj kod, popatrz co zwiera $_POST (print_r($_POST))





Co, zawiera...
nospor
edit: patrzac na twoj javascript widac, ze ty wogole nie dodajesz kolejnych inputow obsada[]. Skoro ich nie dodajesz, to masz ciagle tylko jeden obsada[] wiec wyswietla ci sie tylko jedna wartosc

edit2:
Cytat
Ok rozumiem - echo, ale na co to zamieć żeby był zapis?
No przeciez juz robiles zapis, swiadcza o tym twoje slowa:
Cytat
tylko wartość ostatniego pola jest zapisywana do pliku txt.
kleszcz12
No tak. zapis jest, myślałem że przy tym foreach'u trzeba coś dopisać...;"
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.