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

    jQuery-Ajax invio dati post

    Buon pomeriggio.
    Sull'onclick richiamo una funzione alla quale passo un ID che apre una pagina in stile modal.
    All'interno visualizzo un form.
    A questo form vorrei inviare l'ID, che poi mi permetterà attraverso una query di completare i campi del form.
    Ma, vorrei fare il tutto attraverso lo script di seguito:
    codice:
    function subModal(rId){
    		$("#myModal").on("show.bs.modal", function(e) {
    			var link = $(e.relatedTarget);
    			$(this).find(".modal-body").load(link.attr("href"));
    		});
                    if (confirm("Rispondi?")){
    			$.ajax({
    				   type : "POST",
    				   url  : "modal.php",
    				   data : "id=" + rId,
    					success: function(html){
    						$("#modalPag").load("modal.php");
    					}
    				});
    		}
    		else{
    			return;
    		}
    }
    Inviando i dati POST, quando voglio stampare a video l'ID, non mi restituisce nulla
    Se invece faccio cosi:
    codice:
    $("#modalPag").load("modal.php?id="+rId);
    Allora dall'altra parte lo visualizzo.

    Mi spiegate per favore perché con il POST non invia nulla e come posso risolvere?
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, per GET o POST devi usare l'opzione "method" e non "type".
    Type è alias di Method. Per le versioni prima della 1.9 va usato Type.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Tu invii tramite POST la variabile rId a modal.php (anche se poi di fatto invii una stringa con all'interno anche rId), dopo richiami modal.php per caricarne il contenuto dentro al modal.

    Il problema è che lo stato di modal.php non è persistente, tu lo chiami 2 volte, la prima in cui la variabile rId è settata tramite ajax dal tuo script, la seconda in cui non lo è, perché di fatto richiami solo il codice della pagina senza passare dati.

    La funzione $.load() supporta anche l'invio dei dati (tramite POST se il secondo parametro è un oggetto) alla pagina che viene caricata, potresti fare così:

    codice:
    function subModal(rId){
            $("#myModal").on("show.bs.modal", function(e) {
                var link = $(e.relatedTarget);
                $(this).find(".modal-body").load(link.attr("href"));
            });
            if (confirm("Rispondi?")){
              $("#modalPag").load("modal.php", { "id" : rId });        }
            else{
                return;
            }
    }
    E dovrebbe funzionare (anche se non ho provato).

    Se vuoi farlo utilizzando $.ajax() allora devi fare in modo che modal.php ti restituisca come risposta alla chiamata ajax il codice html che vuoi inserire nella modal, e a quel punto caricarlo nella modal, magari tramite la funzione $.html()

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 © 2024 vBulletin Solutions, Inc. All rights reserved.