Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Firefox wyswietla, Opera i IE nie
Forum PHP.pl > Forum > XML, AJAX
darth_sidious
Witam
Mam skrypt, ktory przy pomocy AJAX'a wyciaga z bazy danych nazwe klienta, ktorego wybieramy z listy rozwijalnej <SELECT>, a nastepnie pobiera z bazy dancych rozne informacje go dotyczace i automatycznie wypelnia pola INPUT.
Skrypt bezproblemowo dziala pod Firefox'em (1.5.0.7) nie chce natomiast dzialac pod Opera (8.54) i IE (6). Skrypt wyglada nastepujaco:
  1. <?php
  2. include 'naglowek.inc';
  3. include 'polaczenie.inc';
  4. ?>
  5. <script type="text/javascript" src="advajax.js"></script>
  6. <script LANGUAGE="JavaScript">
  7. function Pokaz1() {
  8. var v = document.formularz.firmy.selectedIndex;
  9. var x = document.formularz.firmy[v].value;
  10.  
  11. <?php
  12. $zmienna = array(nazwa_dostawcy, miasto, ulica, kod, nip, telefon);
  13. ?>
  14.  
  15. advAJAX.post({
  16. url: <?php $element = 0; echo '"pob.php?numer='.$element.'"'; ?>,
  17. parameters : {
  18. "nazwa" : x
  19. },
  20. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  21. onError : function(obj) { alert("Error: " + obj.status);},
  22. }
  23. );
  24.  
  25. advAJAX.post({
  26. url: <?php $element = 1; echo '"pob.php?numer='.$element.'"'; ?>,
  27. parameters : {
  28. "nazwa" : x
  29. },
  30. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  31. onError : function(obj) { alert("Error: " + obj.status);},
  32. }
  33. );
  34.  
  35. advAJAX.post({
  36. url: <?php $element = 2; echo '"pob.php?numer='.$element.'"'; ?>,
  37. parameters : {
  38. "nazwa" : x
  39. },
  40. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  41. onError : function(obj) { alert("Error: " + obj.status);},
  42. }
  43. );
  44.  
  45. advAJAX.post({
  46. url: <?php $element = 3; echo '"pob.php?numer='.$element.'"'; ?>,
  47. parameters : {
  48. "nazwa" : x
  49. },
  50. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  51. onError : function(obj) { alert("Error: " + obj.status);},
  52. }
  53. );
  54.  
  55. advAJAX.post({
  56. url: <?php $element = 4; echo '"pob.php?numer='.$element.'"'; ?>,
  57. parameters : {
  58. "nazwa" : x
  59. },
  60. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  61. onError : function(obj) { alert("Error: " + obj.status);},
  62. }
  63. );
  64.  
  65. advAJAX.post({
  66. url: <?php $element = 5; echo '"pob.php?numer='.$element.'"'; ?>,
  67. parameters : {
  68. "nazwa" : x
  69. },
  70. onSuccess : function(obj) { document.formularz.<?php echo $zmienna[$element]; ?>.value = obj.responseText; },
  71. onError : function(obj) { alert("Error: " + obj.status);},
  72. }
  73. );
  74.  
  75. }
  76. </SCRIPT>
  77.  
  78. <table border="1">
  79. <tr>
  80. <td></td>
  81. <td>KlientZleceniodawca: </td>
  82. <td><form action="wprowadz.php" method="post" name="formularz">
  83. <select name='firmy' onchange=Pokaz1()>
  84. <option>---WYBIERZ---</option>
  85. <?php
  86. $pobranie = "select * from firmy order by nazwa_dostawcy";
  87. $wynik_pobrania = mysql_query($pobranie) or die (mysql_error());
  88. $liczba_wierszy = mysql_num_rows($wynik_pobrania);
  89. for($i = 0; $i < $liczba_wierszy; $i++)
  90. {
  91. $wiersz = mysql_fetch_array($wynik_pobrania);
  92. echo "<option value='".$wiersz['nazwa_dostawcy']."'>".$wiersz['nazwa_dostawcy']."</option><br>";
  93. }
  94. ?>
  95. </select>
  96. </td>
  97. <td>Data: </td>
  98. <td>
  99. <?php
  100. $dzis = date(d.m.Y);
  101. echo $dzis;
  102. ?>
  103. </td>
  104. <td></td>
  105. </tr>
  106. <tr>
  107. <td rowspan="3">Zleceniodawca</td>
  108. <td>Nazwa</td>
  109. <td>
  110. <input type="text" name="nazwa_dostawcy">
  111. </td>
  112. <td>Ulica</td>
  113. <td>
  114. <input type="text" name="ulica">
  115. </td>
  116. </tr>
  117. <tr>
  118. <td>Miejscowość</td>
  119. <td>
  120. <input type="text" name="miasto">
  121. </td>
  122. <td>Kod pocztowy</td>
  123. <td>
  124. <input type="text" name="kod">
  125. </td>
  126. </tr>


Kod pliku pob.php:
  1. <?php
  2. include 'polaczenie.inc';
  3. $numer = $_GET['numer'];
  4. $typ = array(nazwa_dostawcy, miasto, ulica, kod, nip, telefon);
  5. $pobierz_miasto = "select * from firmy where nazwa_dostawcy="$_POST[nazwa]"";
  6. $result = mysql_query($pobierz_miasto) or die (mysql_error());
  7. if (mysql_num_rows($result) > 0) {
  8. while($row = mysql_fetch_assoc($result)) {
  9. echo $row[$typ[$numer]];
  10. }
  11. }
  12. ?>


Opera wyswietla nastepujacy blad:
http://localhost/transport/wprowadz.php
Unknown context
Syntax error while loading: line 14 of inline script at http://localhost/transport/wprowadz.php :
}
--^

$title
http://localhost/transport/wprowadz.php
Event thread: change
Error:
name: ReferenceError
message: Statement on line 1: Reference to undefined variable: Pokaz1
Backtrace:
Line 1 of script
Pokaz1();
At unknown location
[statement source code not available]



IE zglasza blad w liniach 22 i 83
Xathloc
FF jest najmniej rygorystyczny jeśli chodzi o przestrzeganie specyfikacji. Stąd puszcz większą ilość blędów składniowych HTML. Spróbuj zmienić:
  1. <select name='firmy' onchange=Pokaz1()>

na
  1. <select name="firmy" onchange="Pokaz1();">

i
  1. <?php
  2. echo "<option value='".$wiersz['nazwa_dostawcy']."'>".$wiersz['nazwa_dostawcy']."</option><br>";
  3. ?>

na
  1. <?php
  2. echo '<option value="'.$wiersz['nazwa_dostawcy'].'">'.$wiersz['nazwa_dostawcy'].'</option>';
  3. ?>
darth_sidious
Niestety, nadal nie dziala sad.gif

W jaki wiec sposob lub tez jakim narzedziem moge zweryfikowac poprawnosc kodu, skoro to moze byc przyczyna.
UNK
Mogłeś:
1) podać nazwę głównego skryptu bo jedynie można się domyśleć że nazywa się on wprwoadz.php
2) zamieszczając błędy w których liniach ona są potrzebne jest dokładne odwzorowanie plików, np tam napisałeś że błąd w lini 14 w wprowadz.php jednak w głównym skrypcie jaki podałeś linia 14 to eneter, może że chodzi o juz zparsowany plik php to jest to );
3) zamieścić pliki gdzieś na serwerze aby można było to zobaczyć u siebie.
4) jeśli jest taka możliwość zamieścić pliki tutaj, łącznie z małym wycinkiem bazy danych.
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.