Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] appendTo a przeglądarka
Forum PHP.pl > Forum > Przedszkole
dela
SelectTables.php
  1. $query = ("SELECT * FROM tables");
  2. $result = mysql_query($query);
  3.  
  4. for ($x = 0, $numrows = mysql_num_rows($result); $x < $numrows; $x++) {
  5. $row = mysql_fetch_assoc($result);
  6. $name[$x] = array("name" => $row["name"]);
  7. }
  8.  
  9. $response = $_GET["jsoncallback"] . "(" . json_encode($name) . ")";
  10. echo $response;

index.php
  1. <?php
  2. echo <<<html
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <HEAD>
  6. <TITLE></TITLE>
  7. <script type='text/javascript'>
  8. $(document).ready(function(){
  9.  
  10.   $.getJSON("SelectTables.php?jsoncallback=?", function(data) {
  11. for (var x = 0; x < data.length; x++) {
  12. $("<label>").text(data[x].name).appendTo("#container");
  13. }
  14. });
  15. })
  16. </script>
  17. </HEAD>
  18. <BODY>
  19. echo '<div id="container" style="width: 800px; height: 600px; background-color: #FFFFE5; margin-top: 34px;">';
  20. echo <<<html
  21. </BODY>
  22. </HTML>
  23. html;
  24. ?>


Za pomocą pliku SelectTables.php odczytuje z mysql a następnie zapisuje do JSON nazwy tabelek, następnie w index.php wykorzystuje nazwy i dodaje je do #container lecz problem jest taki, że polecenie .appendTo("#container"); dodaje "wirtualnie" label z nazwa... <div id="container"></div> w źródle przeglądarki jest pusty ale za to w FireBug'u już nie <div id="container"><label>cacao</label></div>. Kombinowałem już ze wszystkimi możliwymi metodami .html .text. insertBefore i prawie w każdym przypadku label z nazwą nie jest widoczny w przeglądarce a w FireBug'u tak. Co mam zrobić, żeby dodany label był widoczny w źródle strony przeglądarki. Czym zastąpić .appendTo() questionmark.gif
by_ikar
Modyfikujesz DOM, a nie bezpośrednio wysyłany html, więc podglądając bezpośrednio źródło, przeglądarka pokaże ci źródło, ale bez modyfikacji jakie ona sama nanosi, oraz jakie nanosi javascrip. W FF daj sobie na stronie ctrl+a i daj pokaż źródło zaznaczenia, wtedy ci pokaże źródło DOM, nawet taki tytuł będzie miało otworzone okno smile.gif Dlatego firebug ci pokazuje, a źródło strony nie, bo źródło strony nie obejmuje modyfikacji jakie nanoszą przeglądarki czy javascript.
dela
a da sie jakos zrobic zeby jednak w zrodle bylo to widzialne??
Jak zmodyfikować sam html?
by_ikar
No to już wtedy w php pobierasz dane i je wyświetlasz. W JS zawsze będziesz pracować na kodzie który się zmieni dopiero po stronie klienta, a tobie potrzebny jest kod który zmieni się po stronie serwera, czyli bezpośrednio w php.
dela
Myślałem o tym... to w takim razie mi powiedz czy jest dalszy sens zapisywania nazw w JSON? Skoro tak i tak będę to wstawiał w pętlę i tablice php.
by_ikar
Sensu póki co ja nie dostrzegam, aczkolwiek możesz mieć jakieś zboczenie na punkcie jsona (json wszędzie, gdzie się tylko da!! wink.gif więc jak uważasz że powinieneś go tam użyć to użyj; lecz nie jest on tam potrzebny.
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.