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

    PHP - AJAX: Risposta chiamata

    Ciao!
    Ho implementato uno script che inviando una chiamata ad una determinata pagina .php mi esegue alcune operazioni.

    Nel caso di operazione eseguita con successo, appende la risposta "Commento Inserito", altrimenti appende "Completare tutti i campi".

    Premetto:
    Ho un DIV che si apre al click su "Vedi commenti", all'interno ho un form di risposta al commento inserito.

    Quando non completo tutti i campi, naturalmente viene appesa la risposta "Completare tutti i campi", il problema è che tale risposta sostituisce tutto il contenuto del DIV senza appendersi al di sotto del form di invio dati.

    Questo è lo script Ajax:
    codice:
    <script type="text/javascript"> 
    $(function() { 
    $(".submit_reply<?php echo $x['idcommento']; ?>").click(function() { 
    var nick = $("#nick_reply<?php echo $x['idcommento']; ?>").val(); 
    var email = $("#email_reply<?php echo $x['idcommento']; ?>").val(); 
    var commento = $("#commento_reply<?php echo $x['idcommento']; ?>").val(); 
    
    var dataString = 'idcommento=' + <?php echo $x['idcommento']; ?> + '&nick=' + nick + '&email=' + email + '&commento=' + commento; 
    $("#reply_form<?php echo $x['idcommento']; ?>").show(); 
    $("#reply_form<?php echo $x['idcommento']; ?>").fadeIn(400).html(' '); 
    
    $.ajax({ 
    type: "POST", 
    url: "includes/add_reply.php", 
    data: dataString, 
    cache: false, 
    success: function(html){ 
    $("#reply_form<?php echo $x['idcommento']; ?>").append(html); 
    $("#reply_form<?php echo $x['idcommento']; ?>").fadeIn("slow"); document.getElementById('email_reply<?php echo $x['idcommento']; ?>').value=''; document.getElementById('nick_reply<?php echo $x['idcommento']; ?>').value=''; document.getElementById('commento_reply<?php echo $x['idcommento']; ?>').value=''; 
    } 
    }) 
    return false; 
    }); 
    }); 
    </script>
    Quindi la risposta va ad appendersi al DIV con un certo ID, però il problema è che non si appende in sequenza al form, ma lo sostituisce, quindi non riesco a rieseguire il submit del form.

    Avete qualche idea di dove possa essere il problema?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    prima di tutto scriverei cosi il js che mi sembra un pò meno incasinato:
    codice:
    <script type="text/javascript"> 
    var element = "<?php echo $x['idcommento']; ?>";
    $(function() { 
    $(".submit_reply"+element").click(function() { 
    var nick = $("#nick_reply"+element").val(); 
    var email = $("#email_reply"+element").val(); 
    var commento = $("#commento_reply"+element").val(); 
    
    var dataString = 'idcommento=' + element + '&nick=' + nick + '&email=' + email + '&commento=' + commento; 
    $("#reply_form"+element).show(); 
    $("#reply_form"+element).fadeIn(400).html(' '); 
    
    $.ajax({ 
    type: "POST", 
    url: "includes/add_reply.php", 
    data: dataString, 
    cache: false, 
    success: function(html){ 
    $("#reply_form"+element).append(html); 
    $("#reply_form"+element").fadeIn("slow"); document.getElementById('email_reply"+element).value=''; document.getElementById('nick_reply"+element).value=''; document.getElementById('commento_reply"+element).value=''; 
    } 
    }) 
    return false; 
    }); 
    }); 
    </script>
    poi mi pare di capire che tu vuoi lasciare la form in vista!?

    creati un div vuoto in cui inserisci il contenuto che ritorna dalla richiesta xhr e mettilo subito dopo la form

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.