2014-12-16 13 views
5

Attualmente, ho una pagina di articoli che legge tutti gli articoli nella mia tabella di database e stampa ognuno nella pagina, a partire dal più recente.PHP - Mostra altri articoli funzionalità feedback

Tuttavia, il sistema che sto facendo sarà utilizzato per un lungo periodo (progetto studentesco per una piccola azienda) e ci saranno molti articoli. Non voglio che l'utente e il server debbano caricare tutti gli articoli contemporaneamente nella pagina web. Ho idee su come farlo, ma prima volevo esprimere l'idea di altre persone.

Concettualmente, stavo pensando di fare sta caricando alcuni articoli sulla pagina. In fondo, ci sarebbe un pulsante "Mostra altro" o un link che leggerà e visualizzerà alcuni altri articoli dal database (si spera senza ricaricare la pagina, ma dubito fortemente che possa funzionare).

In pratica, sarebbe probabilmente qualcosa di simile: utilizzare un modulo, memorizzare il numero di articoli visualizzati in campo nascosto, su "Mostra altro" ricaricare la pagina e utilizzare $ _POST e un ciclo while per visualizzare il numero memorizzato + qualche altro articolo Ecco un esempio semplificato di seguito.

<form method="post" action="articlePage.php"> 
    <?php 
    if(isset($_POST["articleCount"])){ 
     $articleCount = $_POST["articleCount"] + 5; 
    } 
    else{ 
     $articleCount = 5 
    } 

    //Assuming we open the connect, execute the query and then close the connection 
    $count = 0; 
    while($result = mysqli_fetch_array($selectNews) && $count <= $articleCount){ 
     echo $result["articleName"] . "<br/>"; 
     count = count + 1; 
    } 

    echo "<input type='hidden' value='" . $articleCount . '" name='articleCount'/>"; 
    ?> 
    <input type="submit" value="Show more"/> 
</form> 

Le mie domande sono:

  • C'è un/modo più efficiente migliore per andare su questo?
  • C'è un modo in cui non devo ricaricare la pagina?

Qualsiasi consiglio o bit di informazioni sono molto apprezzati! Sono un po 'nuovo nel fare domande quindi se manca qualcosa fammi sapere

+0

Hai mai sentito parlare di ajax? – Strawberry

+0

Non l'ho fatto, ma qualcuno ha postato una risposta contenente AJAX, quindi la sto cercando al momento! –

+0

Sì, AJAX era la risposta, grazie! –

risposta

3

Puoi inserire il tuo codice PHP in un file separato e chiamarlo usando AJAX. Si potrebbe fare qualcosa di simile:

function getArticleCount(){ 
    if(isset($_POST["articleCount"])){ 
     $articleCount = $_POST["articleCount"] + 5; 
    } 
    else{ 
     $articleCount = 5 
    } 

    //Assuming we open the connect, execute the query and then close the connection 
    $count = 0; 
    while($result = mysqli_fetch_array($selectNews) && $count <= $articleCount){ 
     echo $result["articleName"] . "<br/>"; 
     count = count + 1; 
    } 

    echo "<input type='hidden' value='" . $articleCount . '" name='articleCount'/>"; 
} 

getArticleCount(); 

Ecco un esempio di utilizzo AJAX and PHP insieme per dare una sensazione di esso.

+0

Grazie, sembra interessante. Proverò a capirlo (prima vedere AJAX) e tornare da te –

+0

Sembra che funzioni magnificamente senza ricaricare la pagina (o sbaglio?). Tuttavia, la parte AJAX sembra come JavaScript e ho sentito che non è sicuro usare i database. Sto indovinando poiché questo non è esattamente JS, questa voce non si applica? –

+0

Sì Ajax è JavaScript. Il tuo JavaScript non accederà al tuo DB, lo farà PHP. Proteggi il tuo DB all'interno del tuo codice PHP. –

Problemi correlati