Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML]Podwojny <form>
Forum PHP.pl > Forum > Przedszkole
neo1986kk
Witam, chodzi o to ze napisalem sobie stronke i musialem zrobic cos takiego:

  1. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc
  2. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc
  3. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc
  4. <form name="a">
  5. <input name="imie"/>
  6. <input name="nazwisko"/>
  7. <input name="data"/>
  8. <form name="b">
  9. Tutaj jest drugi form dlatego że jak go nie bylo to na IE Javascript nie widział tego:
  10.  
  11. <select name="bg" size="10" onchange="getData('tap');">
  12. <?
  13. while ($wiersz2 = mysql_fetch_row($idzapytania))
  14. {
  15. ?>
  16. <option value="<?echo $wiersz2[0];?>"><?echo $wiersz2[1]; ?></option>
  17. <?
  18.  
  19. }
  20. echo '</select>';
  21. echo '</form>';
  22. echo '</div>';
  23. echo '<div id="tap">Tu pojawi się strona z AJAXa</div>';
  24.  
  25. Teraz tak: dalej mam
  26. <input name="data"/>
  27. <input name="klasa"/>
  28. <input name="godzina"/>
  29. <input type="submit"/>
  30. </form>
  31. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc
  32. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc
  33. tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc tresc


Tak jak zaznaczyłem w środku mam dwa znaczniki form i jeden przycisk submit, który nie wysyła formularza.sad.gif
Sprawa jest taka że chciałbym żeby wysyłał

Form B jest tylko po to żeby js sie do niego odwolywal (document.d.bg.value)
batman
Na początek wywal ten środkowy formularz. Nie może być formularza w formularzu.
Jak już usuniesz tez formularz, to dodaj atrybut action i method do pierwszego formularza.

Do tego nie zamykasz kodu PHP po ostatnim echo - wiersz 24.

Popraw te błędy, a powinno zadziałać.
nospor
Nie mozna zagnieżdzać formularzy - zapamiętaj to sobie raz na zawsze. Nie wazne ze ty to robisz tylko po to, by dostac sie do jakiegos elementu.

Do dobierania sie do elementow sluzy masa rzeczy:
document.getElementById
document.getElementsByTagName
inne.

neo1986kk
wiedzialem że moge na was liczyćsmile.gif zaraz bede kombinował.

Ale jak nie ma tego forma to nie dziala znowu innerHTML ale tylko na IE, i nie chodzi o to żeby pobrać te dane tylko poprostu juz sam nie wiem o co mu chodzi ze musi miec te znaczniki tam


a powiedzcie mi jeszcze czy jest sens robienia czegoś takiego.

  1. tresc tresc......
  2. <form name=b>
  3. <?
  4. zawartos php
  5.  
  6. ?>
  7. </form>
  8.  
  9. <form name="a">
  10. i tutaj te wszystkie inputy



Ale w efekcie uzyskac takie coś to znaczy w CSS...

input
input
form a
input
inupt


Czyli ogolnie pytanie czy dało by się zrobić tak żeby ten form b wrzucić w środek dokumentu przy uzyciu css

nospor
Cytat
Ale jak nie ma tego forma to nie dziala znowu innerHTML
innerHTML dziala zawsze. Zapewnie nie pobrało ci elementu, dla ktorego chcesz robic innerHTML.
Juz ci mowilem jak masz pobierac elementy
neo1986kk
zmieniłem to i na FF pobiera a na IE nie... a wystarczy że wstawie puste znaczniki <form> bez nazwy bez id bez niczego i wtedy na IE dziala no ale mam zagnieżdzone 2 formy... i nie wysyla sie formularz...
nospor
Cytat
a wystarczy że wstawie puste znaczniki <form>
rety... przeciez ci mowimy, ze tak nie mozna...
pokaz lepiej twoj kod po zmianach bez formow. pokaz kod html i pokaz kod w jaki pobierasz ten nieszczesny element. No przeciez wrozyc nie bedziemy...
neo1986kk
  1. <form name="a" action="rejestracja_etap2.php">
  2. Nr Gadu-Gadu</td><td>
  3. <input class="rejestracja" type="text" name="GG"></input><span class="wyp"></span>
  4. </td>
  5. </tr>
  6. </table>
  7. <table class="info">
  8. <tr><td>
  9. <div id="info">Pola oznaczone gwiazdką musza być wypełnione</div>
  10. </td></tr>
  11. </table>
  12. </div>
  13. </div>
  14. </div>
  15.  
  16. <div id="news">
  17. <div id="okno">
  18.  
  19. <?
  20. echo '<div id="wszystko">';
  21. echo '<div id="div1">';
  22.  
  23. $zapytanie101 = "SELECT * FROM dzialy";
  24. $idzapytania101 = mysql_query($zapytanie101);
  25. ?>
  26. Wybierz swój dział<br>
  27. <select id="sel" name="bg" size="10" onchange="getData('tap');">
  28. <?
  29. while ($wiersz2 = mysql_fetch_row($idzapytania101))
  30. {
  31. ?>
  32. <option value="<?echo $wiersz2[0];?>"><?echo $wiersz2[1]; ?></option>
  33. <?
  34.  
  35. }
  36. echo '</select>';
  37. echo '</div>';
  38. echo '</div>';
  39. echo '<div id="tap">tu powinien pojawić sie AJAX</div>';
  40. echo '</div>';
  41.  
  42. ?>
  43. </div>
  44. </div>
  45.  
  46. dalej inputy zwykle.
  47.  




getData
  1. function getData(divID) {
  2.  
  3.  
  4. var si = document.getElementById('sel').selectedIndex;
  5. var fname = document.getElementById('sel').options[si].value;
  6.  
  7. var divID = document.getElementById(divID);
  8. if (XMLHttpRequestObject) {
  9. XMLHttpRequestObject.open("POST", "dzialy2.php");
  10. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  11.  
  12. XMLHttpRequestObject.onreadystatechange = function ()
  13. {
  14. if (XMLHttpRequestObject.readyState == 4)
  15. {
  16. divID.innerHTML = XMLHttpRequestObject.responseText;
  17. }
  18. }
  19. XMLHttpRequestObject.send('mojobiekt=' + escape(fname));}
  20. }


Jeszcze mogę dodać co może być istotne dla ie że moj dokument wygląda tak:

<div id="news">
<div id="okno">
input
input
</div></div>

<div id="news">
<div id="okno">
input
input
</div></div>

<div id="news">
<div id="okno">
TU MOJE NIESZCZĘSNE PHP
</div></div>

<div id="news">
<div id="okno">
input
input
</div></div>
nospor
a nie mozesz napisac tak:
Kod
document.getElementById('tap').innerHTML = XMLHttpRequestObject.responseText;

?
neo1986kk
Napisałem tak i wynik bez zmian

nieznany błąd czasu wykonywania wiersz 17 znak 1
nospor
po pierwsze: kod co ci podalem, a konkrentie document.getElementById nie powoduje bledu co podales.
po drugie: masz bledy logiczne. Nie moze istniec wiele elementów o tym samym ID. Uporządkuj jakaś tę strukture.
neo1986kk
zmiana nazw id nic nie pomaga, chyba napisze to wszystko od początku bo teraz szukam jeszcze rozwiązań i kopiuje sobie kawałkami. To co się dzieje z tym dokumentem to jest masakra jakaś.

Zwróćmy uwage na znacznik </form>

Takie ustawienie dziala
  1. $zapytanie101 = "SELECT * FROM dzialy";
  2. $idzapytania101 = mysql_query($zapytanie101);
  3. ?>
  4. Wybierz swój działoszyn<br>
  5. <select name="bg" size="10" onchange="getData('tap');">
  6. <?
  7. while ($wiersz2 = mysql_fetch_row($idzapytania101))
  8. {
  9. ?>
  10. <option value="<?echo $wiersz2[0];?>"><?echo $wiersz2[1];echo $wiersz2[0];?></option>
  11. <?
  12.  
  13. }
  14. echo '</select>';
  15. echo '</form>';
  16. echo '</div>';
  17. echo '<div id="tap">fdgdgf</div>';
  18. echo '</div>';
  19.  
  20. ?>


A takie juz nie:
  1. $zapytanie101 = "SELECT * FROM dzialy";
  2. $idzapytania101 = mysql_query($zapytanie101);
  3. ?>
  4. Wybierz swój działoszyn<br>
  5. <select name="bg" size="10" onchange="getData('tap');">
  6. <?
  7. while ($wiersz2 = mysql_fetch_row($idzapytania101))
  8. {
  9. ?>
  10. <option value="<?echo $wiersz2[0];?>"><?echo $wiersz2[1];echo $wiersz2[0];?></option>
  11. <?
  12.  
  13. }
  14. echo '</select>';
  15.  
  16. echo '</div>';
  17. echo '<div id="tap">fdgdgf</div>';
  18. echo '</div>';
  19.  
  20. ?>
  21. </form>


Wg mnie jest to dziwne, szczególnie że ten znacznik chciałbym ustawić na końcu dokumentu czyli jakieś 600 linijek niżej.
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.