2010-09-05 13 views
33

ottengo i dati da DB e visualizzarli in un div ... quello che voglio fare è quando clicco un link che dovrebbe modificare il contenuto del divHTML - Variazione contenuti di aggiornamento della pagina senza aggiornare ricaricare la pagina

una possibilità è quella di passare attraverso il parametro URL a se stesso e ricaricare la pagina ...

ho bisogno di farlo senza ricaricare \ rinfrescante ...

<?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> 

l'obiettivo è quando Faccio clic su uno qualsiasi dei collegamenti del contenuto di div e php variable \ s viene aggiornata senza aggiornamento .... in modo che l'utente possa vedere i nuovi dati e dopo che se viene eseguita qualche query è su nuova variabile \ s

ps so che ne avrò bisogno AJAX ma non conosco AJAX .. quindi per favore rispondi con qualcosa che posso imparare ... la mia conoscenza è limitata a HTML, PHP, alcuni JavaScript & alcuni jQuery

risposta

41

Hai l'idea giusta, ecco come procedere: i gestori di onclick vengono eseguiti sul lato client, nel browser, quindi non è possibile chiamare direttamente una funzione PHP. Invece, è necessario aggiungere una funzione JavaScript che (come hai detto) utilizza AJAX per chiamare uno script PHP e recuperare i dati. Utilizzando jQuery, si può fare qualcosa di simile:

<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> 

Poi si mette il vostro codice PHP in un file separato: (l'ho chiamata data.php nell'esempio di cui sopra)

<?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

posso usare $ id = $ _POST ['id']; anziché $ id = $ _GET ['id']; – Moon

+0

e non più librerie per includere oltre '' jquery.js – Moon

+0

c'è un modo per farlo senza JavaScript/jQuery se ho già il contenuto pronto in PHP? – DeveloperACE

1

jQuery farà il lavoro. È possibile utilizzare la funzione jQuery.ajax, che è uno generale per l'esecuzione di chiamate ajax, o dei suoi involucri: jQuery.get, jQuery.post per ottenere/invio dei dati. È molto facile da usare, ad esempio, consulta il tutorial this, che mostra come usare jQuery con PHP.

Problemi correlati