Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [jquery] Richiamare la stessa pagina dopo funzione ajax

    Salve a tutti, sono ancora un principiante di jquery.

    Ho il seguente codice
    codice:
    <html>
    <head>    
    <script src="http://code.jquery.com/jquery-latest.js"></script>  
    <script type="text/javascript">
    $(document).ready(function() {      
    $("form#iscrizione").submit(function(){        
    var nome = $("#nome").val();        
    var cognome = $("#cognome").val();        
    $.ajax({          
        url: "prova-utenti.php",          
        type: "POST",       
        data: "nome=" + nome + "&cognome=" + cognome,       
        dataType: "html",        
        success: function(msg) {            
        $("div#risposta").html(msg);          },        
         error: function(){          
         alert("Chiamata fallita!!!");        }       });       
          return false;      });  });    
    </script>      
    <form id="iscrizione">  
    
    
      Inserisci il nome:
      <input type="text" name="nome" id="nome"/>  </p>  
    
    
    <input type="submit" value="invia"></p>  </form>    
    <div id="risposta"></div>      
    </body>   
    </html>
    e la risposta in php
    Codice PHP:
    <?php  
    $nome 
    trim($_POST['nome']);  
    $azione trim($_GET['azione']);  
    switch(
    $azione){      
    case 
    'continua':      
    echo
    "Ciao Luca!"; break;      
    default:      
    if(
    $nome == 'luca') {      
    echo
    "<a href=\"prova-utenti.php?azione=continua\">continua</a>";      
    } else {      
    echo
    "Utente non presente.";      
    }      
    break;  
    }      
    ?>
    Tralasciando i problemi di sicurezza ecc...il codice funziona correttamente mostrandomi il risultato nel div 'risposta' sia quando inserisco un nome diverso da 'luca' e se inserisco 'luca' mi mostra il link continua.
    Il problema viene qui, cliccando il link continua, invece che caricare il contenuto nel div 'risposta', mi mostra direttamente la pagina.
    Come devo fare per continuare a stare sempre nella stessa pagina e mostrare il contenuto nel div 'risposta'.
    A me oggettivamente piacerebbe simulare il comportamento di un iframe ma senza avere il vincolo delle dimensioni del box.

    Grazie per eventuali risposte

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: [jquery] Richiamare la stessa pagina dopo funzione ajax

    Originariamente inviato da misotropici
    ... Il problema viene qui, cliccando il link continua, invece che caricare il contenuto nel div 'risposta', mi mostra direttamente la pagina.
    Come devo fare per continuare a stare sempre nella stessa pagina e mostrare il contenuto nel div 'risposta' ...
    Se gli dai un link, mi sembra normale che si apra a tutta pagina, se vuoi "proseguire" nel div risposta dovrai eseguire una nuova chiamata ajax
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ciao ho trovato la soluzione al mio problema, basta mettere la nuova chiamata nel file prova-utenti.php dando al link di risposta l'id "prova"

    codice:
       
    $("a#prova").click(function(){     
           $("div#risposta").load(
           "prova-utenti.php",      
           {azione: 'continua'});  	
           return false;       
    });
    Funziona tutto correttamente, ma è la procedura corretta?
    Insomma, se sto nella pagina prova.php perchè per farlo funzionare devo mettere la funzione jquery nel file di risposta(prova-utenti.php)?
    Non sarebbe più sensato inserirlo nella pagina in cui viene stampato il risultato?

    Ho provato a inserirlo nella pagina principale ma non funziona.

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.