Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] "niewidoczna" funkcja
Forum PHP.pl > Forum > Przedszkole
Fifi209
A więc tak przejdę do rzeczy. jQuery wczytuje mi informacje do div'a, mam też kilka funkcji.

Strona główna - ładuję wszystko, + jQuery i funkcje js
Podstrony - przeładowuję tylko div

Wszystkie funkcje działają prócz jednej.

Zrobiłem funkcję dla wyszukiwarki, lecz gdy wczytuję linka np. <a href="#" onclick="funkcja();">test</a> pisze, że nie została nigdzie zdefiniowana. Lecz gdy w pasku adresu wpiszę:
Kod
javascript: funkcja();


wszystko działa poprawnie.

Miał ktoś kiedyś podobny problem ?

@edit Ciekawe jest też to, że gdy w href dam java script:funkcja() to wszystko działa dobrze.
erix
Może daj nieco kodu?

I nie rób żadnego onclick, tylko JS ma coś takiego, co się nazywa bindowaniem zdarzeń, więc z tego korzystaj. jQuery ma gotowe rozwiązania do tego m.in. funkcje click i bind.
Fifi209
strona:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3.  
  4. <meta name="Description" content="Information architecture, Web Design, Web Standards." />
  5. <meta name="Keywords" content="your, keywords" />
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  7. <meta name="Distribution" content="Global" />
  8. <meta name="Author" content="Erwin Aligam - ealigam@gmail.com" />
  9. <meta name="Robots" content="index,follow" />
  10.  
  11. <link rel="stylesheet" href="http://localhost//images/Underground.css" type="text/css" />
  12. <script type="text/javascript" src="jQuery.js"></script>
  13. <script type="text/javascript" src="javascripts.js"></script>
  14.  
  15. <title>Underground OTS</title>
  16.  
  17. </head>
  18.  
  19. <!-- wrap starts here -->
  20. <div id="wrap">
  21.  
  22. <!-- header -->
  23. <div id="header">
  24.  
  25. <span id="slogan">Oficjalna strona serwera</span>
  26.  
  27. <!-- tabs -->
  28. <ul>
  29. <li id="current"><a href="#" onclick="getNews();"><span>Strona Główna</span></a></li>
  30. <li><a href="#"><span>FAQ</span></a></li>
  31. <li><a href="forum/"><span>Forum</span></a></li>
  32. <li><a href="#"><span>Przygoda z OTS</span></a></li>
  33. <li><a href="#"><span>Historia OTS</span></a></li>
  34. <li><a href="#"><span>Team</span></a></li>
  35. <li><a href="#"><span>Kontakt</span></a></li>
  36. </ul>
  37.  
  38. </div>
  39.  
  40. <div id="header-logo">
  41.  
  42. <div id="logo">Under<span class="red">ground OTS</span></div>
  43.  
  44. </div>
  45.  
  46.  
  47. <div id="sidebar" >
  48.  
  49. <h1>Menu Główne</h1>
  50. <div class="left-box">
  51. <ul class="sidemenu">
  52. <li><a href="#" onclick="getNews();">Strona Główna</a></li>
  53. <li><a href="#">FAQ</a></li>
  54. <li><a href="forum/">Forum</a></li>
  55. </ul>
  56. </div>
  57.  
  58. <h1>Menu Poboczne</h1>
  59. <div id="left-box">
  60. <ul class="sidemenu">
  61. <li><a id="button_online_list" href="#">Lista Online</a></li>
  62. <li><a id="button_search" href="#">Wyszukiwarka Postaci</a></li>
  63. <li><a href="#">Statystyki</a></li>
  64. <li><a href="#">Statystyki online</a></li>
  65. </ul>
  66. </div>
  67.  
  68. <h1>Serwer 8.42</h1>
  69. <div id="left-box">
  70. <span id="serwer842"></span>
  71. </div>
  72.  
  73. <h1>Partnerzy</h1>
  74. <div class="left-box">
  75. <ul class="sidemenu">
  76. <li>Aktualnie Brak</li>
  77. </ul>
  78. </div>
  79.  
  80. <h1>Reklama</h1>
  81. <div class="left-box">
  82. <ul class="sidemenu">
  83. <li>Aktualnie Brak</li>
  84. </ul>
  85. </div>
  86.  
  87. </div>
  88.  
  89. <div id="main">
  90.  
  91.  
  92. </div>
  93.  
  94.  
  95. <!-- wrap ends here -->
  96. </div>
  97.  
  98. <!-- footer starts here -->
  99. <div class="footer">
  100.  
  101. <p>
  102. &copy; 2009 <strong>Underground Team</strong><br/>
  103. Design by: <a href="http://localhost/http://www.styleshout.com/">styleshout</a> |
  104. Valid <a href="http://localhost/http://validator.w3.org/check/referer">XHTML</a> |
  105. <a href="http://localhost/http://jigsaw.w3.org/css-validator/check/referer">CSS</a>
  106. </p>
  107.  
  108. </div>
  109.  
  110. </body>
  111. </html>


Do div'a ładuję przykładowe dane:

Od strony php jest to tak:
  1. <?php
  2. include('../../config.php');
  3.        
  4.        try {
  5.        $pdo = new PDO('mysql:host='.$mysql['host'].';dbname=tfs', $mysql['user'], $mysq['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  6.        $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  7.  
  8.        $result = $pdo->query('SELECT `name` FROM `players` WHERE `online` = 1 AND `group_id` = 1 ORDER BY `name` DESC');
  9.        
  10.        $counter=1;
  11.        
  12.        echo '<h1>Lista online</h1><p>
  13.        <table border="0">';
  14.        
  15.        foreach($result as $row) {
  16.            echo $counter.'. <a href="java script:search(''.$row['name'].'');">'.$row['name'].'</a><br/>';
  17.            $counter++;
  18.        }
  19.        
  20.        echo '</table></p>';
  21.        
  22.        $result->closeCursor();
  23.        unset($result);
  24.        
  25.        }catch(PDOException $e) {
  26.            echo $e->getMessage();
  27.        }
  28. ?>


Jak widzisz, nie mogę każdemu tak ładnie jak w innych przypadkach przypisać click.

@edit

ahahhahahh ale ja jestem niemota ;d

Kod
function getStatus() {
    $("#serwer842").load('sources/actions/status.php');
    setTimeout('getStatus()', 600000);
}

function getNews() {
    $("#main").load('sources/actions/news.php');
    setTimeout('getNews()', 600000);
}

function getOnline() {
    $("#main").load('sources/actions/online.php');
    setTimeout('getOnline()', 600000);
}

function getInfo() {
    $("#main").load('sources/actions/search.php');
}

function search(name) {
    $("#main").load('sources/actions/search.php?name=' + name);
}

$(document).ready(
    function() {
        $("#button_online_list").click(
            function() {
                getOnline();
            }
        );
        
        $("#button_search").click(
            function() {
                getInfo();
            }
        );

        getNews();
        getStatus();
    }
);
erix
Cytat
Jak widzisz, nie mogę każdemu tak ładnie jak w innych przypadkach przypisać click.

Właśnie nie widzę, bo nie podałeś kodu JS. tongue.gif
Fifi209
Kod dodany. Ale widzę, że edytowanie postu "nie odświeża" tematu.

Moglibyście coś takiego dodać. haha.gif
erix
Masz firebuga? Wywala jakieś błędy po hrefie? Wyszukiwanie też mógłbyś zbindować.

Cytat
Ale widzę, że edytowanie postu "nie odświeża" tematu.

I bardzo dobrze, że nie odświeża. Tylko by denerwowało.
Fifi209
Mam firebuga, nie wskazuje żadnych błędów. Obejdzie się na href=javascript.

Proszę o zamknięcie tematu.
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.