Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]dodawanie pola formularza - zapisuje tylko ostatnie pole!
kleszcz12
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


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.

Ten post edytował kleszcz12 12.06.2008, 14:58:44
Go to the top of the page
+Quote Post
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Nie name="obsada" tylko name="obsada[]". Wtedy dostaniesz tablicę a nie tylko ostatnia wartość.
Go to the top of the page
+Quote Post
kleszcz12
post
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


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>


Ten post edytował kleszcz12 12.06.2008, 15:09:03
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
kleszcz12
post
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


Cytat
Dostajesz tablicę, więc przejdź pętlą po jej elementach i zapisz każdy z osobna.




...a konkretniej...? raczej zielony jestem w php  (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  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.
Go to the top of the page
+Quote Post
kleszcz12
post
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


Warning: Invalid argument supplied for foreach() in /home/KONTA/WWW/PREMIUM/.../dodaj.php on line 13
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale pokaz caly kod jak napisales, wlacznie z formularzem.
Pewnie przekazales zly index w poscie
Go to the top of the page
+Quote Post
kleszcz12
post
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


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...

Ten post edytował kleszcz12 14.06.2008, 12:32:41
Go to the top of the page
+Quote Post
skibson20
post
Post #10





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 14.06.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
kleszcz12
post
Post #11





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


też nie działa... :
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@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.
Go to the top of the page
+Quote Post
kleszcz12
post
Post #13





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


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...

Ten post edytował kleszcz12 14.06.2008, 16:41:05
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post
kleszcz12
post
Post #15





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

Ostrzeżenie: (0%)
-----


No tak. zapis jest, myślałem że przy tym foreach'u trzeba coś dopisać...;"
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:21