2010-09-05 18 views
33

Dostaję dane z DB i wyświetlam je w div ... co chcę zrobić, gdy kliknę link, powinien zmienić zawartość divHTML - Zmień Uaktualnij zawartość strony bez odświeżania załaduj ponownie stronę

jedna opcja jest przejść przez parametr URL do siebie i odświeżyć stronę ...

i trzeba to zrobić bez przeładowywania \ orzeźwiający ...

<?php 
    $id = '1'; 

    function recp($rId) { 
     $id = $rId; 
    } 
?> 

<a href="#" onClick="<?php recp('1') ?>" > One </a> 
<a href="#" onClick="<?php recp('2') ?>" > Two </a> 
<a href="#" onClick="<?php recp('3') ?>" > Three </a> 

<div id='myStyle'> 
<?php 
    require ('myConnect.php');  
    $results = mysql_query("SELECT para FROM content WHERE para_ID='$id'"); 

    if(mysql_num_rows($results) > 0) { 
     $row = mysql_fetch_array($results); 
     echo $row['para']; 
    } 
?> 
</div> 

celem jest, gdy Klikam dowolny link z zawartością div i zmienna php \ s jest aktualizowany bez odświeżania .... tak że użytkownik mógł zobaczyć nowe dane a potem jeśli niektóre kwerenda jest wykonywana jest na nową zmienną \ s

ps wiem, że to będzie wymagało trochę AJAX, ale nie wiem, AJAX .. więc proszę o odpowiedź z czymś, co mogę się nauczyć ... moja wiedza jest ograniczona do HTML, PHP, niektóre JavaScript & niektóre jQuery

Odpowiedz

41

Masz dobry pomysł, więc oto jak to zrobić: programy obsługi onclick działają po stronie klienta, w przeglądarce, więc nie możesz bezpośrednio wywołać funkcji PHP. Zamiast tego musisz dodać funkcję JavaScript, która (jak wspomniałeś) używa AJAX do wywoływania skryptu PHP i pobierania danych. JQuery, można zrobić coś takiego:

<script type="text/javascript"> 
function recp(id) { 
    $('#myStyle').load('data.php?id=' + id); 
} 
</script> 

<a href="#" onClick="recp('1')" > One </a> 
<a href="#" onClick="recp('2')" > Two </a> 
<a href="#" onClick="recp('3')" > Three </a> 

<div id='myStyle'> 
</div> 

Następnie można umieścić swój kod PHP w oddzielnym pliku (ja nazwał go data.php w powyższym przykładzie)

<?php 
    require ('myConnect.php');  
    $id = $_GET['id']; 
    $results = mysql_query("SELECT para FROM content WHERE para_ID='$id'"); 
    if(mysql_num_rows($results) > 0) 
    { 
    $row = mysql_fetch_array($results); 
    echo $row['para']; 
    } 
?> 
+1

mogę używać $ id = $ _POST ['id']; zamiast $ id = $ _GET ['id']; – Moon

+0

i nie ma już bibliotek, które mogłyby zawierać oprócz "jQuery.js" – Moon

+0

jest jakiś sposób, aby to zrobić bez javascript/jQuery, jeśli mam już gotową zawartość w PHP? – DeveloperACE

1

jQuery zrobi to zadanie. Można użyć funkcji jQuery.ajax, która jest ogólna do wykonywania wywołań ajaxowych lub jej wrapperów: jQuery.get, jQuery.post do pobierania/wysyłania danych. Jest to bardzo łatwy w użyciu, na przykład samouczek: this, który pokazuje, jak używać jQuery z PHP.

Powiązane problemy