Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1

    Stampare avviso successo nel proprio div a seconda del form che ho inviato

    Ciao,
    in una pagina html, ho diversi form in cui, tramite uno script ajax, senza dover ricaricare la pagina, passo i dati al file process.php che mi esegue l'inserimento dei dati nel db. Alla fine dell'inserimento mi viene stampato all'interno del <div> contenente il form, un messaggio.

    lo script:

    codice:
    <script type="text/javascript" src="jquery-1.11.3-jquery.min.js"></script><script type="text/javascript">
    $(document).ready(function()
    {    
        
        $(document).on('submit', '.formValidation', function()
        {
                
            var data = $(this).serialize();
            
            $.ajax({
            
            type : 'POST',
            url  : 'submit.php',
            data : data,
            success :  function(data)
                       {                        
                            $(".formValidation").fadeOut(500).hide(function()
                            {
                                $(".result").fadeIn(500).show(function()
                                {
                                    $(".result").html(data);
                                });
                            });
                            
                       }
            });
            return false;
        });
    });
    </script>
    e l'html
    codice HTML:
    <form id="myform2" class="formValidation" name="myform2" action="" method="post"></form>
    <div class="widget-body">
      <div class="widget-main">
        <div>
          <label for="form-field-select-1">Comune</label>
          <select name="comune" class="form-control" id="form-field-select-1" form="myform2">
            <option value="">Seleziona...</option>
          </select>
        </div>
    
        <hr>
        <div class="widget-body">
          <div class="widget-main">
            <div>
    
              <input type="text" name="comune" id="comune" value="" placeholder="Aggiungi Comune" form="myform2">
              <input type="submit" name="submit" value="Submit" class="btn btn-sm btn-success" form="myform2">
    
              <div class="result"></div>
            </div>
          </div>
        </div>
      </div> </div>
    Il problema è che lo script fa riferimento ad una sola classe .result. Quindi avendo tutti i moduli form con la classe
    codice HTML:
    <div class="result"></div>
    mi vengono stampati in tutti i moduli lo stesso messaggio, mentre io vorrei che succedesse solo nel modulo che ho inviato. E' possibile modificare lo sript in modo che faccia questo?

    grazie

  2. #2
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Basta usare un id univoco, quindi per ogni form crei un div con id diverso.

  3. #3
    Allora, se ho capito bene, ho sostituito nello script la classe .result con l'id #result e poi nei due form (solo 2 per il test) il
    codice HTML:
    <div class="result"></div>
    che era uguale per tutti con id=result1 e id=result2.
    Se è così non funziona. Quale rifermento avrebbe lo script per stampare nel form corretto?

  4. #4
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Allora lasciando la classe result per tutti i form fai così:

    codice:
    //aggiungi la variabile divResult
    
    var divResult = $(this).find('.result');
    
    //nella success function
    
    $(divResult).html(data);

  5. #5
    dunque, ho modificato lo script come hai detto, ma non funziona più, cioè al submit non succede nulla, neppure controllando la console con chrome.

    codice:
    $(document).ready(function(){	
    	
    	$(document).on('submit', '.formValidation', function()
    	{
    			
    		var data = $(this).serialize();
    		var divResult = $(this).find('.result');
    		$.ajax({
    		
    		type : 'POST',
    		url  : 'submit.php',
    		data : data,
    		success :  function(data)
    				   {						
    						$(".formValidation").fadeOut(500).hide(function()
    						{
    							$(".result").fadeIn(500).show(function()
    							{
    								$(divResult).html(data);
    							});
    						});
    						
    				   }
    		});
    		return false;
    	});
    });

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Bhe strano che non funziona più niente. La console da qualche errore?

  7. #7
    Ho controllato, il form funziona, cioè i dati vengono passati va POST al file e me li ritrovo nel database, solo che non mi compare più il messaggio dell'avvenuto caricamento all'interno del div corrispondente

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    ma il div con la classe result si trova all'interno del form?

  9. #9
    intendi al tag <form>? Non proprio, nel senso che non potendo annidare i vari <form> l'uno dentro all'altro, ho dovuto eseguire uno stratagemma fornito da html5 che mette a disposizione la funzione "form".

    Ma questo è html no?

  10. #10
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Il div con la classe result deve stare dentro i tag form

    <form ...>
    <input>
    <div class="result"></div>
    </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.