Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> form input method=POST
czaszkowy
post
Post #1





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

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


Witam,

Chciałbym się dowiedzieć czy do jednego 'form' (metody POST) można dać wiele inputów np. poprzez wykorzystanie JS. Mianowicie chodzi mi o to, żeby po zaznaczeniu checkboxów, wszystkie były brane pod uwagę (a nie tylko jeden). Jeszcze inaczej, czy jest możliwość skrócenia tego kodu tak aby użytkownik mógł wpisać wartość do <input type=text>, po czym zaznaczyć wybrane checkboxy, a następnie potwierdzić wybór jednym przyciskiem submit?

CODE

<form method="post" action="index.php?action=bid">
<input type="text" name="value" value="" />
<input type="checkbox" name="id" value="1" />
<input type="submit" value="Submit" />
</form>
<form method="post" action="index.php?action=bid">
<input type="text" name="value" value="" />
<input type="checkbox" name="id" value="2" />
<input type="submit" value="Submit" />
</form>


Pogrzebałem troche w googlach i wyszedł mi taki kod:

CODE

<form action="index.php?action=bid" method="POST" name="someForm">
<input type="text" name="value" value="" />
<input type="checkbox" name="id" value="1" />
<input type="checkbox" name="id" value="2" />
<input type="checkbox" name="id" value="3" />
<a href="#" onclick="document.someForm.submit();">Submit</a>


Jednak, niestety w tym przydaku, brany jest pod uwagę jedynie ostatni checkbox.

Mógłbym liczyć na pomoc, z Waszej strony?

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Jeśli jakieś elementy formularza mają taki sam atrybut name, to, ostatni nadpisuje przedostatni itd. Dlatego użyłem name="id-"+i, może spróbuj tak, że podajesz ilość checkboxów, (przecinek) wartość pierwszego, (przecinek) wartość następnego itd:

  1. <?php
  2. if($_POST["submit"] == "zapisz") {
  3. print_r($_POST);
  4. }
  5. ?>
  6. <html>
  7. <body>
  8. <form name="form" id="form" action="index.php?action=bid" method="post">
  9. <input type="text" id="ile" value="2,723,456" />
  10. <input type="button" onclick="addChks();" value="generuj" />
  11. <input type="submit" id="submit" name="submit" value="zapisz" />
  12. </form>
  13. <script>
  14. function addChks() {
  15. var ile = document.getElementById('ile').value;
  16. var tile = ile.split(',');
  17.  
  18. var form = document.getElementById('form');
  19. for(var i=1;i<=tile[0];i++) {
  20. var c = document.createElement('input');
  21. c.setAttribute('type','checkbox');
  22. c.setAttribute('name','id-'+i);
  23. //c.setAttribute('name','id');
  24. c.setAttribute('value',tile[i]);
  25. form.insertBefore(c, document.getElementById('submit'));
  26. }
  27. }
  28. </script>
  29. </body>
  30. </html>

Może to Cię jakoś naprowadzi.

localhost Firefox 3.5.6 :
Array ( [id-1] => 723 [id-2] => 456 [submit] => zapisz )
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 11:31