Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problema con ajax....

  1. #1

    Problema con ajax....

    Salve, sono praticamente nuovo di questo forum quindi probabilmente nello scrivervi farò sicuro degli errori . Il mio problema è il seguente: sto sviluppando un applicazione con zend framework, in particolare una pagina del sito deve contenere una sottospecie di chat... ora il problema è il seguente, devo riuscire ad aggiornare solo il div contenente la chat ogni tot di tempo..... quindi ho scritto il seguente codice:

    <script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    <script language="JavaScript" type="text/javascript">
    $(document).ready(function(){
    var j = jQuery.noConflict();
    j(document).ready(function()
    {
    j("#chat").everyTime(10000,function(i){
    var x=<?php $utente=$this->utente; ?>
    var url = '<?echo $this->url(array('controller' => 'admin', 'action' => 'chat11',), 'default'); ?>'
    j.ajax({
    type: 'GET',
    dataType: "phtml",
    url: url,
    data:"id_utente"+x,
    cache: false,
    success: function(dati){
    var y=$(dati).find('#chat').html();
    $("#chat").html(y);
    }
    })
    })
    });
    });
    </script>

    dove l'url richiamato è il seguente

    <?php
    mb_internal_encoding('UTF-8');
    $messaggi = $this->messaggi;
    $utente=$this->utente;
    $userid=$this->userid;
    foreach($messaggi as $mess){
    if($mess->to==$utente){
    echo "<div id='risposta'>";
    echo "<br>Da: <b>Filippo Scrosta</b>";
    echo "</div>";
    echo "<div id='alignright'>";
    $mess->testo = mb_strtolower($mess->testo);
    $mess->testo = ucfirst($mess->testo);
    echo "<font color='white'>$mess->testo</font>";
    echo "</div>";
    }
    if($mess->from==$utente){
    echo "<div id='domanda'>";
    $userid->nome = mb_strtolower($userid->nome);
    $userid->nome = ucfirst($userid->nome);
    $userid->cognome = mb_strtolower($userid->cognome);
    $userid->cognome = ucfirst($userid->cognome);
    echo "<br>Da: <b>".$userid->nome." ". $userid->cognome."</b>";
    echo "</div>";
    echo "<div id='alignleft2'>";
    $mess->testo = mb_strtolower($mess->testo);
    $mess->testo = ucfirst($mess->testo);
    echo "<font color='white'>$mess->testo</font>";
    echo "</div>";
    }
    }
    ?>
    </div>


    spero di non aver commesso troppi errori e di essere stato il più possibile chiaro....ringrazio tutti coloro che mi aiuteranno

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, guardando il codice ci sono probabilmente delle correzioni da fare
    codice:
    var j = jQuery.noConflict();
    j(document).ready(function(){
        j("#chat").everyTime(10000,function(i){
        var x=<?php echo $utente=$this->utente; ?>
        var url = '<?php echo $this->url(array('controller' => 'admin', 'action' => 'chat11',), 'default'); ?>';
        j.ajax({
            type: 'GET',
            dataType: "phtml",
            url: url,
            data:"id_utente="+x,
            cache: false,
            success: function(dati){
            var y=j(dati).find('#chat').html();
                j("#chat").html(y);
            }
        })
        })
    });
    Basta j(document).ready... una volta.
    var x mancava l'echo della variabile.
    Se nello script chiamato da ajax ti aspetti $_GET['id_utente'] ci devi mettere l'uguale(=).
    Nella parte php non vedo dopo riprendi il valore di id_utente o se già assegnato altrove..
    Riprova
    ps
    non so che dovrebbe contenere y nel success

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2013
    Messaggi
    228
    Y nel succes c'è ed è corretto, il resto del codice non so...
    In ogni caso ciò che ti serve è setTimeout oppurr setInterval, che sono le due funzioni per impostare intervalli di tempo in js... potresti mettere un setTimeout nel complete della chiamata ajax che richiama la tua funzione oppure usare un ssetInterval in una funzione che fa ripartire la chiamata

  4. #4
    grazie mille m4rko80, ho risolto il problema

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.