Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie dynamiczne nazw pol zawartych w formularzu, document.formularz.elements[i].name;
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Meczę się klika godzin z tak prostą operacja jak pobranie i wydrukowanie nazw pol zawartych w formularzu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
wywołanie: document.write(pola[1].name); zwraca nazwę pola, ale przejście pętlą wywala błąd:
  1. <script type="text/javascript">
  2. function test()
  3. {
  4. var ile=document.formularz.length
  5. var pola=document.formularz.elements;
  6.  
  7. // Tak jest OK document.write(pola[1].name); //
  8.  
  9. for(i=0; i< ile; i++)
  10. {
  11. document.write(pola[i].name);
  12. }
  13. }
  14. </body>
  15. <form method="post" action="odbierz.php" name="formularz">
  16. <input type="text" name="login">
  17. <br /><input type="text" name="haslo">
  18. <input type="hidden" name="uidnadawcy" value="123" />
  19. <input type="button" onclick="test()" name="button" value="go" />
  20. </form>
  21. Wystapil błąd:
  22. Wiersz 25
  23. Znak 3
  24. Blad 'name' jest pusty lub nie jest obiektem
Co tu mam zle w tym tak prostym kodzie (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) POMOCY
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
cim
post
Post #2





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


pewnie Cie zmartwie a moze uciesze, ale u mnie dziala tak jak powinno - wyswietla liste nazw pol z formularza

sprawdzalem na ff i operze
Go to the top of the page
+Quote Post
Mion
post
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
faktycznie strona uruchamiana w przeglądarce nie wywala błędu, a ja sprawdzałem bezpośrednio w Edit+. Ale tak czy inaczej kod nie działa jak powinien ponieważ wyświetla tylko nazwę 1 pola formularza name="login" a wszystkie
(IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Mion 2.09.2006, 00:10:39
Go to the top of the page
+Quote Post
cim
post
Post #4





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


Cytat(Mion @ 2.09.2006, 01:10:01 ) *
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
faktycznie strona uruchamiana w przeglądarce nie wywala błędu, a ja sprawdzałem bezpośrednio w Edit+. Ale tak czy inaczej kod nie działa jak powinien ponieważ wyświetla tylko nazwę 1 pola formularza name="login" a wszystkie
(IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

mi pokazuje nazwy wszystkich, 4 input`ow
Go to the top of the page
+Quote Post
Mion
post
Post #5





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


ale w IE pokazywany jest tylko pierwszy...
Wiec co dalej z tym fantem (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) ?

Nikt się nie okaże pomocny w tej prostej kwestii (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Ten post edytował Mion 2.09.2006, 10:38:34
Go to the top of the page
+Quote Post
gekon
post
Post #6





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Form w XHTMLu nie ma atrybutu name, należy używać id.

  1. <form method="post" action="odbierz.php" id="formularz">
  2. <input type="text" name="login">
  3. <br /><input type="text" name="haslo">
  4. <input type="hidden" name="uidnadawcy" value="123" />
  5. <input type="button" id="onclick" name="button" value="go" />
  6. </form>

  1. function test() {
  2. var pola = document.getElementById('formularz').getElementsByTagName('input');
  3.  
  4. for(i=0; i< pola.length; i++){
  5. alert(pola[i].name);
  6. }
  7. }
  8.  
  9. window.onload = function(){
  10. document.getElementById('onclick').onclick = function(){
  11. test();
  12. }
  13. }
Go to the top of the page
+Quote Post
Mion
post
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


na alercie jest OK ale:

1) dlaczego nie można wydrukować w pętli document.write(pola[i].name); pojawia sie tylko 1 pole
2) jeśli dojdzie pole <textarea name="opis"></textarea> jego name nie zostanie odczytane.
(IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
gekon
post
Post #8





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


  1. function test() {
  2. var pola = document.getElementById('formularz').childNodes;
  3. var akapit = document.createElement("p");
  4.  
  5. document.getElementById('results').appendChild(akapit);
  6.  
  7. for(i=0; i< pola.length; i++){
  8. if(pola[i].name){
  9. var tekst = document.createTextNode(pola[i].name+' ') ;
  10. akapit.appendChild(tekst);
  11. }
  12. }
  13. }


  1. <form method="post" action="odbierz.php" id="formularz">
  2. <input type="text" name="login">
  3. <br /><input type="text" name="haslo">
  4. <input type="hidden" name="uidnadawcy" value="123" />
  5. <input type="button" id="onclick" name="button" value="go" />
  6. <textarea name="test"></textarea>
  7. </form>
  8.  
  9. <div id="results">
  10. </div>
Go to the top of the page
+Quote Post
Mion
post
Post #9





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Tylko niestety w IE ani FF nie działa ... Nic się nie pojawia w warstwie results
Go to the top of the page
+Quote Post
gekon
post
Post #10





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


Może zapomniałeś o tym?

  1. window.onload = function(){
  2. document.getElementById('onclick').onclick = function(){
  3. test();
  4. }
  5. }
Go to the top of the page
+Quote Post
Mion
post
Post #11





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Wydaje mi sie, że nie Test
Go to the top of the page
+Quote Post
gekon
post
Post #12





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


To:
  1. window.onload = function(){document.getElementById('onclick').onclick = function(){test();}}

Powinno być poza deklaracją funckji:
  1. function test(){
  2. ...
  3. }
  4. window.onload = function(){document.getElementById('onclick').onclick = function(){test();}}
Go to the top of the page
+Quote Post
Mion
post
Post #13





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Dzięki za pomoc!

W sumie potrzebuję to do Zmienne do AJAX
wiec może i w tej kwestii okażesz się pomocny...
Był bym wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 26.09.2025 - 06:23