Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS]Blad w zapisie?
Forum PHP.pl > Forum > Przedszkole
Green-sc
Witam.
mam taki skrypt:
  1. function wyswietl(co) {
  2. var ile = <? 
  3. $wynik = mysql_query("SELECT id, temat, tresc, autor, data, kategoria FROM news UNION SELECT id, 
    temat, tresc, autor, data, kategoria FROM wars WHERE stan='rozegrany' Order by data DESC"
    );
  4. $liczba = mysql_num_rows($wynik);
  5.  
  6. echo"$liczba";
  7. ?>; for (var i = 1; i <= ile; i++)
  8. if(co != i)
  9. document.getElementById("b" + i + "_b").style.display = 'none';
  10. else
  11. document.getElementById("b" + i + "_b").style.display = 'block';
  12. }

I teraz pytanie czy w tym skrypcie jest jakis blad. Bo normalnie chodzi tylko jak zmienilem wartosc zapytania document.getElementById to cos nie dziala :/
www0_0
A czemu w JS używasz zapytania MySQL?? Przecież JS działa u klienta, i to wywołanie MySQL nic nie da bo kod PHP już dawno się wykonał kiedy JS zaczyna działać. Tak więc to nie ma racji bytu.
Green-sc
czyli jak obejde ze zapytanie mysql zrobie osobno a skrypt JS osobno bedzie dzialac?
kossa
1. w php wykonaj zapytanie na bazie mysql

2. do skryptu zwróć wartość otrzymaną w punkcie 1. zrobisz to podczas generowania strony (php wykonuje się po stronie serwera)

Łukasz
devnul
imho to jesli o js chodzi to musisz pokazac też html bo bez tego w ciemno raczej nie utrafisz gdzie jest błąd - a skoro działało a zmieniłeś tylko odwołąnie przez getElementById to wina bazy raczej nie jest

@wszyscy: zauważcie ze to co kolega przedsawił możę byc w pliku hmtl/php a nie koniecznie w osobnym pliku js (nie mówie ze to dobra metoda).

Na ślepo strzelam że mogłeś zapomnieć podkeślnika po b to:
Kod
document.getElementById("b" + i + "_b")

czyli powinno być tak:
Kod
document.getElementById("b_" + i + "_b")

ale to tylko domysły - pokaż więcej kodu to ktoś z całą pewnością rozwiąże Twój problem smile.gif
Green-sc
no ciekawe :]biggrin.gif Napisze w skrocie :]
Cytat
<script type="text/javascript">
function wyswietl(co) {
var ile = <?
$wynik = mysql_query("SELECT id, temat, tresc, autor, data, kategoria FROM news UNION SELECT id, temat, tresc, autor, data, kategoria FROM wars WHERE stan='rozegrany' Order by data DESC");
$liczba = mysql_num_rows($wynik);

echo"$liczba";
?>; for (var i = 1; i <= ile; i++)
if(co != i)
document.getElementById("b" + i + "_b").style.display = 'none';
else
document.getElementById("b" + i + "_b").style.display = 'block';
}
</script>

  1. <style type="text/css"><? 
  2. $wynik = mysql_query("SELECT id, temat, tresc, autor, data, kategoria FROM news UNION SELECT id, 
    temat, tresc, autor, data, kategoria FROM wars WHERE stan='rozegrany' Order by data DESC"
    );
  3. $liczba = mysql_num_rows($wynik);
  4.  
  5. for($id=1; $id<=$liczba; $id++)
  6. {
  7. echo"#b".$id."_b, ";
  8. }
  9. ?>
  10. #k{
  11. display: none;
  12. }</style>

  1. <?
  2.  
  3. while ($rekord = mysql_fetch_array ($wynik))
  4. {$x++
  5.  
  6. if($x=2)
  7. {
  8. <table >
  9. <tr><td></td></tr>
  10. <tr><td></td></tr>
  11. </table>";
  12. }
  13. elseif($x=4)
  14. {
  15. <table >
  16. <tr><td><div id='b".$rekord['id']."_b'><br >".$rekord2['tresc']."</span></div></td></tr>
  17. <tr><td><a href=# onclick='wyswietl(".$rekord['id'].")' ><img border=0 src='img/czytajdalej.jpg' width='89' height='18' /></a></td></tr>
  18. </table>";
  19. }
  20.  
  21. } ?>

pomoglo cos?

A i sprawdzalem w zrodle kodu i wszystko wydaje sie byc prawidlowe poza tym JS :/
www0_0
W echo elementu masz #b natomiast wywołujesz samo b czy to nie jest przyczyną problemu??
Green-sc
no w tej drugiej ramce to jest przeciez styl. # odwoluje sie do stylu elementu z danych id. Chyba ze o cos innego ci chodzilo ?
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.