Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Problema con Ajax

  1. #1

    Problema con Ajax

    Salve a tutti, il mio problema è questo:

    Carico una pagina (index.php) che contiene un link con id (t1) e un Div con id (container).
    codice:
    Utenti
    <div id="container">
        
    </div>

    Quando clicco sul link mi viene incorporata una pagina esterna (utenti.php).
    Questo è il codice Ajax:

    codice:
    $(document).ready(function(){
    
        $("#t1").click(function(){
                //$("#container").hide();
              $("#container").load($(this).attr("href"), function(){      
                       $("#container").show();
                       event.preventDefault();
                       });
                return false;
             });
    
    });
    e fin qui va tutto bene, però se clicco un link contenuto nella pagina inclusa (utenti.php) la pagina non viene incorporata nello stesso Div ma viene aperta in maniera diretta.

    Ho provato a mettere nel file .JS il codice Ajax per riconoscere l'ID del Link trasformandolo in:

    codice:
    $(document).ready(function(){
         
        $("#t1").click(function(){
    
      
                //$("#container").hide();
              $("#container").load($(this).attr("href"), function(){      
                       $("#container").show();
                       event.preventDefault();
                       });
                return false;
             });
            
          $("#click").click(function(){
                 //$("#container").hide();  
              $("#container").load($(this).attr("href"), function(){  
                    $("#container").show();
                       event.preventDefault();
                    });
                return false;
             });             
    
    
    });
    Dove #click è l'ID del Link contenuto nella pagina Utenti.php, ma anche così non mi incorpora la pagina nel DIV.

    Ho provato anche ad includere direttamente la pagina con lo SCRIPT .js anche nella pagina Utenti.php ma mi riconosce il primo link (che funziona correttamente) ma non tutti gli altri!

    Se non ho capito male questo sistema non include realmente la pagina, come farebbe il classico include del PHP, che quindi gli passa anche i valori già inclusi nell'index é più una sorta di visualizzazione, solo che non ho capito come passare il valore dei Link contenuti in utenti.php dentro la pagina principale index.php.

    Grazie per tutti gli aiuti

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    E' perché associ l'evento click ad un oggetto non presente nel documento perché caricato con ajax usando .on dovresti risolvere con questa sintassi sempre al ready $('body').on('click','#click', function(){......}) usando jquery 1.7. o superiore
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    E' perché associ l'evento click ad un oggetto non presente nel documento perché caricato con ajax usando .on dovresti risolvere con questa sintassi sempre al ready $('body').on('click','#click', function(){......}) usando jquery 1.7. o superiore
    No, e' perche' usa il prvevetDefault nella funzione di callback.

    Prova a mettere il preventDefault come prima istruzione della funzione associata all'onClick.

  4. #4
    Ciao vedi se ti piace questa mia soluzione su JSFIDDLE

  5. #5
    Intanto grazie a tutti per le risposte, domani vedo di fare due prove seguendo i vostri consigli e vediamo che tiro fuori!

    Grazie a tutti per l'aiuto e grazie ad HTML.IT

  6. #6
    Originariamente inviato da lucavizzi
    No, e' perche' usa il prvevetDefault nella funzione di callback.

    Prova a mettere il preventDefault come prima istruzione della funzione associata all'onClick.
    ERRATA CORRIGE: Non e' il preventDefault che causa l'errore ma il riferimento al this.
    Cosi' dovrebbe andare:
    codice:
      $("#t1").click(function(){
            var path=$(this).attr('href');
              $("#container").load(path), function(){      
                       $("#container").show();
                });
          return false;
        });

  7. #7
    Intanto 1000 grazie a tutti, seguendo i vostri consigli ho risolto alla grande!

    Volevo chiedervi (domanda sempre legata a quella di prima), sapendo che nel div container viene caricata la pagina utente e dentro utente devo inserire una lista (ovviamente in tabella), come posso fare in maniera dinamica (premendo un bottone o un link) ad aggiungere o a rimuovere un campo (riga) senza dover cambiare pagina?

    Grazie 1000 per gli aiuti e per gli insegnamenti! (Grande Comunity! )

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.