Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][AJAX][JavaScript]innerHTML i <select>
neo1986kk
post 9.03.2010, 00:31:56
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


Nadałem taki temat dlatego, że prawdopodobnie z tym skrypt może mieć problem... oczywiście tylko w IE
  1.  
  2. function getData(divID) {
  3.  
  4.  
  5. var si = document.wyslijf.nazwa.selectedIndex;
  6. var fname = document.wyslijf.nazwa.options[si].value;
  7.  
  8. var divID = document.getElementById(divID);
  9. if (XMLHttpRequestObject) {
  10. XMLHttpRequestObject.open("POST", "plik2.php");
  11. XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  12.  
  13. XMLHttpRequestObject.onreadystatechange = function ()
  14. {
  15. if (XMLHttpRequestObject.readyState == 4)
  16. {
  17. divID.innerHTML = XMLHttpRequestObject.responseText;
  18. }
  19. }
  20. XMLHttpRequestObject.send('mojobiekt=' + escape(fname));}
  21. }


glowny.php
  1. $zapytanie = "SELECT * FROM aaaa";
  2. $idzapytania = mysql_query($zapytanie);
  3. ?>
  4. <br>
  5. <select name="nazwa" size="10" onchange="getData('tap');">
  6. <?
  7. while ($wiersz2 = mysql_fetch_row($idzapytania101))
  8. {
  9. ?>
  10. <option value="<?echo $wiersz2[0];?>"><?echo $wiersz2[1]; ?></option>
  11. <?
  12.  
  13. }
  14. echo '</select>';
  15. echo '</div>';
  16. echo '<div id="tap"></div>';
  17. echo '</div>';


plik2.php
  1. $obiekt=$_POST['mojobiekt'];
  2. $zapytanie = "SELECT * FROM `bbbb` where a=$obiekt";
  3. $idzapytania = mysql_query($zapytanie);
  4. ?>
  5. <form>
  6. <select name="nazwa1" size="10">
  7. <?
  8. while ($wiersz2 = mysql_fetch_row($idzapytania))
  9. {
  10. ?>
  11. <option value="<?echo $wiersz2[0]?>"><?echo $wiersz2[1];?></option>


-------------------------------------------------------------------------------------------------
Czy to IE wszędzie musi mieć jakieś problemy...
Go to the top of the page
+Quote Post
nospor
post 9.03.2010, 00:50:42
Post #2





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




Cytat
Czy to IE wszędzie musi mieć jakieś problemy...
A czy ci początkujący zawsze muszą nie podawać czym objawia się problem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
neo1986kk
post 9.03.2010, 00:58:24
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


hehe zawsze:P

objawy sa takie że wyskakuje konsola błędów i pojawia się napis ze nieznany błąd jest w linijce 17 znak 1 czyli


divID.innerHTML = XMLHttpRequestObject.responseText;
} - tu

ale zrobiłem taki myk, że zamiast
  1. divID.innerHTML = XMLHttpRequestObject.responseText;


wstawilem

coś w stylu alert(XMLHttpRequestObject.responseText) już dokladnie nie pamietam

w kazdym razie plik2.php pokazał mi się w tym alercie a DIVie nie chce, a na FF śmiga.
Go to the top of the page
+Quote Post
thek
post 9.03.2010, 01:34:04
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Niestety IE nie wie co to XMLhttpRequestObject. Dla IE stosuje się inna składnię wywołania AJAX. Radzę nieco poczytać o tym smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
neo1986kk
post 9.03.2010, 02:18:38
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

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


jeśli chodzi Ci o
  1. var XMLHttpRequestObject = false;
  2. if (window.XMLHttpRequest) {
  3. XMLHttpRequestObject = new XMLHttpRequest ();
  4. } else if (window.ActiveXObject) {
  5. XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp");
  6. XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHttp")
  7. }


To oczywiście jest to ustawione:) i mimo wszystko nie działa...

Ja ma do was przy okazji takie pytanie...

Czy ktoś czyta jak są długie posty, a raczej dlugie kody, bo ja zawsze wrzucam kawałkami i prawdopodobnie to może być też mój błąd, bo myślę że gdybym wrzucił cały kod to byście się odrazu domyślili co jest nie tak. To tak na przyszłość...

A teraz chcę wam powiedzieć co było źle i wcale to nie był kod JS, czy nawet moja niewiedza i nieznajomość AJAXa.
Nie był to nawet błąd zapisu <div>.

miałem wszystko pod jednym <form name="a"></form name="a">, już z braku laku zrobiłem to w ten sposób

było tak
<form name="a">
formularz....
formularz....
formularz....
FORMULARZ DZIAŁAJĄCY Z AJAXEM
formularz....
formularz....
formularz....
</form>

i to na FF bez problemu chodziło.

a teraz jest tak:

<form name="a">
formularz....
formularz....
formularz....
<form name="b">
FORMULARZ DZIAŁAJĄCY Z AJAXEM
</form>
formularz....
formularz....
formularz....
</form>

Oczywiście musialem zmienić w JS document.a na document.b , ale teraz śmiga na IE i na FF... W każdym razie jestem wdzięczny, że ktoś się tym zainteresował...
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 04:13