Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [PHP, SQL, AJAX, jQuery] Estraz. dati da GET per paginazione: record ripetuti.

    Ciao a tutti,

    dunque premesso che sono un pò cotto e premesso che se nel caso questo thread dovesse rivelarsi inadeguato per la richiesta di aiuto/consiglio/suggerimento che sto per fare, prego i mod di spostarmi nella sezione adatta.

    Ridunque. Si parte in principio dal visualizzare nella pagina, in una tabella html, 10 righe contenenti dei dati, in questo modo:

    codice:
    <table>
     <tbody>
       <tr>
         <td>DATO 1.1</td>
         <td>DATO 1.2</td>
       </tr>
       
     </tbody>
    </table>
    Questa tabella viene generata in PHP da una query che restituisce 54 risultati. Uno script PHP per la paginazione visualizzerà quindi 10 righe e le restanti 44 saranno disponibili per la visione: ci saranno quindi 6 numeri ("pagine") per la visione dei restanti contenuti.

    Ora..

    Al click su uno di questi numeri di paginazione viene attivata una richiesta AJAX via GET alla stessa pagina che, ricevendo il dato, va ad estrarre dalla stessa identica query ma "messa in alto nella pagina" i dati richiesti, modellandoli secondo la clausola LIMIT x,y .

    La query viene inviata ad un ciclo while che avrà il compito di estrarre i contenuti. L'estrazione dei contenuti avverrà grazie al parametro AJAX ajax.responseText che viene passato (nello script di sopra..che invia la richiesta ajax) alla funzione Javascript eval.

    Quindi avremo il risultato generato da: eval(xxx.responseText); . Dove la risposta ajax è un echo PHP proveniente "dall'alto della pagina", dove c'è la situazione gestita dal parametro GET, che conterrà codice jQuery per la modifica dinamica della tabella stessa.

    Quindi il risultato finale sarà la scomparsa dei risultati presenti con la ricomparsa dei risultati scelti.

    Il problema è che...arrivati all'ultima pagina, che dovrà visualizzare i restanti SOLO 4 risultati, essa (le righe dell'echo PHP che contengono codice jQuery che modificano la tabella HTML) visualizza si...i 4 risultati restanti...MA...fa rimanere invariati anche quelli seguenti, quando invece dovrebbero scomparire e basta. Quindi si dovrebbero visualizzare solamente gli ultimi risultati e quindi...o...svuotare le righe successive o...boh...sto un pò cotto....


    Non so se mi sono spiegato..

    Grazie a tutti in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Mi pare un problema js... bisogna vedere con jquery come aggiorni le righe... probabilmente parti dalla prima e stampi i risultati nell'ordine e se quindi ce ne sono in più quelli in eccesso restano lì dove sono... basterebbe proseguire il ciclo fino a "10" inserendo dei valori vuoti, p.es.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Con jQuery, all'interno del ciclo while PHP, succede una cosa del tipo:

    Codice PHP:
    <?php

    $num
    =1;
    while(
    $xx mysql_fetch_row($yy)){

      echo 
    " var elemento{$num} = $('#riga-di-tabella'); "// Ogni riga di tabella ha un id con numero finale per l'identificazione
      
    echo " elemento{$num}.find("altro-elemento").text("{$xx[0]}"); "// Si modificano le righe della tabella
      
    $num++;
    }
    exit();
    ?>
    Non badare alle virgolette nel pezzetto di codice, le ho messe tutte uguali per velocizzare. Nello script tutto è corretto. Questo è in linea di massima il metodo (senza averti incluso i vari hide("fade") - show("fade").

    La cosa su cui sto riflettendo è vedere come generare righe di tabella vuote o non generarle affatto. Ma al momento mi viene solo in mente di generare queste righe di modifica attraverso jQuery e metterle in array PHP e poi..confrontarle con un altro array magari...forse...non lo sò...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Giusto! Facendo l'estrazione per 10 risultati poi..arrivati all'ultima "pagina"..mi visualizza solo gli ultimi 4 e...le righe vuote. O meglio...le righe "semi vuote" perchè ci sono pezzi di testo intermedi.

    Grazie!

    Ora vedo come posso omettere queste righe vuote..


  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Risolto. Ce l'ho.

    Dunque:

    1) lancio un ciclo da 0 a 10;
    2) racchiudo le stringhe contenenti codice js in array php;
    3) if/else con preg_match su regolarità stringa
    3.1) Positivo: echo della stringa con codice js regolare
    3.2) Negativo: echo della stringa con tipo "$(riga).remove();"
    4) Gli ultimi risultati, la famosa "ultima pagina", viene visualizzata solamente con le righe di competenza. E basta. Ed il contenuto si adatta al box.


    Grazie per l'illuminazione!




Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.