Visualizzazione risultati 1 fino 7 di 7

Discussione: Aggiornare contenuti pagina

  1. #1
    Guest

    Predefinito Aggiornare contenuti pagina

    Salve a tutti, ho davvero bisogno del vostro aiuto...
    In una pagina ho una serie di post con dei relativi commenti. Dovrei creare uno script che aggiorna questi post quando ne vengono aggiungi di nuovi e che aggiorni i commenti dei post quando ne vengono aggiunti di nuovi.

    Questo è lo script che ho intenzione di creare:
    Ho creato una funzione javascript che viene aperta al onload della pagina e poi ad intervalli regolari tramite setInterval.

    Codice:
    function refresh_post()
    { 
     var old_post;
     
     $.ajax({
       type: "POST",
       url: "system/div_refresh/index_post.php",
       data: "user=$userid,
       success: function(risul)
       {
        old_post = document.getElementById('refresh_post').innerHTML;
        document.getElementById('refresh_post').innerHTML = risul + old_post;
       }
     });
    }
    Questa richiama una pagina che contine la query che fa la stampa dei post. La query stampa tutti i post poi setta una variabile nel db uguale al time() dell'ultimo post. Così facendo quando richiamo la funzione la seconda volta posso stampare solo i post con time superiore...


    Il problema nasce con la stampa dei commenti. Quando stampo i post stampo anche tutti i commenti legati al post. Per aggiornarli pensavo di: quando richiamo la funzione e trovo nuovi post controllo se esiste un div nella mia pagina con id uguale al id del post che ho appena trovato.
    Se non esiste allora il post e nuovo, altrimenti il post è vecchio ma c'è un nuovo commento (quando l'utente commenta aggiorno il time dell'intero post). A questo punto dovrei aggiornare solo la sezione commenti.

    Non ho problemi a scrivere la prima parte dello script, ma non so bene come scrivere la seconda... Potete aiutarmi?

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Citazione Originalmente inviato da socialmy Visualizza messaggio
    Codice:
    data: "user=$userid,
    Come mai apri e non chiudi?

  3. #3
    Guest

    Predefinito

    Devo aver copiato male nel forum... la soluzione vi sembra valida?

  4. #4
    Guest

    Predefinito

    Ragazzi ho scritto parte dello script e non funziona...

    Nella pagina con la bacheca ho inserito questo script:

    Codice:
    <script type="text/javascript">
    function refresh_post(limit_post)
    { 
     var old_post;
     
     $.ajax({
       type: "POST",
       url: "system/div_refresh/index_post.php",
       data: "user=$userid&limit="+limit_post,
     });
    }
    </script>
    Che dovrebbe richiamare una pagina ad intervalli regolari.

    Nella pagina index_post.php, ho inserito la query, se la query trova dei risultati ho scritto questo:
    Codice PHP:
    echo "<script type='text/javascript'>";
    echo
    "var old_post;";
    echo
    "$.ajax({";
    echo
    "type: 'POST',";
    echo
    "url: 'index_post_print.php',";
    echo
    "data: 'user=$userid&type=post&id=$id_title',";
    echo
    "});";

    echo
    "success: function(risul)";
    echo
    "{";
    echo
    "old_post = document.getElementById('refresh_post').innerHTML;";
    echo
    "document.getElementById('refresh_post').innerHTML = risul + old_post;";
    echo
    "}";

    echo
    "</script>";
    Che dovrebbe stampare i risultato del file che rochimato in in div nella pagina principale.

    Il problema è che non funziona. La stampa non viene effettuata, inoltre ho provato ad inserire del codice per la redirect in index_post.php ma questo non viene effettuato.

    Dove sbaglio?
    Ultima modifica di socialmy : 28-03-2012 alle ore 14.30.53

  5. #5
    Guest

    Predefinito

    bisogna chiarire questa riga:
    Codice:
    data: "user=$userid&limit="+limit_post,
    la variabile userid deve essere ovviamente di javascript...non di php.
    Se la variabile si chiama "userid" allora devi fare:

    Codice:
    data: "user="+userid+"&limit="+limit_post,
    se invece si chiama proprio "$userid" allora fai:

    Codice:
    data: "user="+$userid+"&limit="+limit_post,
    Ovviamente problema molto simile è nel listato html.
    Ultima modifica di projectFede : 28-03-2012 alle ore 15.39.47

  6. #6
    Guest

    Predefinito

    La variabile è in php, posso scrivere $userid perchè lo script è dentro un

    Codice PHP:
    <?php
    echo <<<EOD
    ...
    EOD;
    ?>
    Forse avrei dovuto scriverlo...
    Il problema non può essere qui?
    Codice PHP:
    echo "old_post = document.getElementById('refresh_post').innerHTML;";
    echo
    "document.getElementById('refresh_post').innerHTML = risul + old_post;";
    Dato che il div si trova nella pagina che richiama il file?

  7. #7
    Guest

    Predefinito

    Ciao a tutti, ho trovato il metodo perfetto per realizzare il mio scopo ma ho dei problemi... tanto per cambiare

    Nella pagina principale ho inserito questo script:
    Codice:
    <script type="text/javascript">
    function refresh_post(limit_post)
    {
     $.ajax({
       type: "POST",
       url: "index_post.php",
       data: "",
     });
    }
    </script>
    In index_post.php tramite php capisco se c'è un nuovo commento o un nuovo post.

    A questo punto ho sviluppato due funzioni distinte, una per i commenti e una per i post.
    In queste funzioni richiamo una secondo e un terzo file esterno che stampo in un div da me scelto.

    Tutto questo è già stato realizzato, non riesco a fare una cosa, ovvero passare dalla funzione uno alla funzione due.

    Mi vengono in mente solo due modi, richiamare le funzioni dalla pagina esterna oppure fare un return dalla pagina esterna e interpretando la variabile nella pagina principale chiamare la funzione. Non riesco a realizzare nessuno dei due script. Potete aiutarmi?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •