Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobranie dynamiczne nazw pol zawartych w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki
Mion
Meczę się klika godzin z tak prostą operacja jak pobranie i wydrukowanie nazw pol zawartych w formularzu 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 sad.gif POMOCY
cim
pewnie Cie zmartwie a moze uciesze, ale u mnie dziala tak jak powinno - wyswietla liste nazw pol z formularza

sprawdzalem na ff i operze
Mion
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
sad.gif
cim
Cytat(Mion @ 2.09.2006, 01:10:01 ) *
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
sad.gif

mi pokazuje nazwy wszystkich, 4 input`ow
Mion
ale w IE pokazywany jest tylko pierwszy...
Wiec co dalej z tym fantem sadsmiley02.gif ?

Nikt się nie okaże pomocny w tej prostej kwestii sadsmiley02.gif
gekon
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. }
Mion
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.
sadsmiley02.gif
gekon
  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>
Mion
Tylko niestety w IE ani FF nie działa ... Nic się nie pojawia w warstwie results
gekon
Może zapomniałeś o tym?

  1. window.onload = function(){
  2. document.getElementById('onclick').onclick = function(){
  3. test();
  4. }
  5. }
Mion
Wydaje mi sie, że nie Test
gekon
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();}}
Mion
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 smile.gif
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.