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

    problema con form multipli ajax

    Salve ragazzi ho un problema con la gestione di invio dati con ajax da N form. Posto il codice degli N form
    codice:
    <?php
    for($i=0; $i<10; $i++) {
    
    ?>
    <form name="f" id="f" action="?" >
    								<input name="a" value="a" id="a" type="text" />
    <input type="submit" />
    							</form>
    <?php
    }
    Posto il codice ajax
    codice:
    $(document).ready(function() {
    				
    					$("#f").submit(function(){
    										 
    						//associo variabili
    						var dati = $("f").serialize();
    						
    						$.ajax({
    							type: "POST",
    							url: 'module.php',
    							data: dati,
    							dataType: "json",
    							success: function(data) {
    								if (data.result === "ok") {								
    									document.f.a.value='Rispondi ...';	
    								} else {
    									$("#error_post").show();	
    									$("#error_post").html(data.result);
    									
    								}
    							}
    						});
    						return false;
    					});
    				});
    Mi spiegate come diamine sia possibile che il form ajax non va? Preso singolarmente il form va alla grande ma quando mi ritrovo N form come in questo caso, cliccando su submit l'url della pagina diventa http://localhost/page.php?a=xxxxxx refresciandomi la pagina stessa senza inviare nulla al module.php, quando poi non dovrebbe. Sto impazzendo e spero che possiate aiutarmi. Grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto.
    Prova cosi
    codice:
    <?php
    $num = 0;
    for($i=0; $i<10; $i++) {
    $num++;
    ?>
    <form name="f" id="f<?php echo $num; ?>" action="#" >
    								<input name="a" value="a" id="a<?php echo $num; ?>" type="text" />
    <input type="submit" />
    							</form>
    <?php
    }
    Posto il codice ajax
    codice:
    $(document).ready(function() {
    	for(var i=0; i<10; i++){			
    					$("#f"+i).submit(function(){
    										 
    						//associo variabili
    						var dati = $("f"+i).serialize();
    						
    						$.ajax({
    							type: "POST",
    							url: 'module.php',
    							data: dati,
    							dataType: "json",
    							success: function(data) {
    								if (data.result === "ok") {								
    									$("#a"+i).val('Rispondi ...');	
    								} else {
    									$("#error_post").show();	
    									$("#error_post").html(data.result);
    									
    								}
    							}
    						});
    						return false;
    					});
    }//fine ciclo for
    				});
    le modifiche sono in grassetto, credo che non andasse perché gli id devono essere univoci invece tu inserivi 10 form f
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Innanzitutto ti ringranzio per la risposta ma volevo avvisarti che non va. In pratica il tasto submit risulta essere morto e non innesca nessuna richiesta ajax. Alchè visto che vorrei inviare dati col tasto "enter" ho implementato questa funzione seguendo il tuo consiglio. Posto il codice che rende meglio l'idea
    codice:
    function pressed(e) {
    			 
    				// Has the enter key been pressed?
    				if ( (window.event ? event.keyCode : e.which) == 13) { 
    				
    					for(var i=0; i< <?php echo $num; ?>; i++) {
    					
    						//associo variabili
    						var dati = $("#f"+i).serialize();
    						
    						$.ajax({
    							type: "POST",
    							url: 'data/modulo.chat.php',
    							data: dati,
    							dataType: "json",
    							success: function(data) {
    								if (data.result === "ok") {								
    									$("#a"+i).val('');									
    								} else {
    									$("#error_post").show();	
    									$("#error_post").html(data.result);
    									
    								}
    							}
    						});
    						return false;
    					}
    				}
    			}
    Questa funzione funziona alla grande se non fosse che si limita a farlo solo per il primo form, cioè per f0 ...per tutti gli altri f_ennesimi form non lavora per niente. Dov'è che sbaglio?
    Vi giuro che sto impazzendo
    Grazie

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Verifica che html della pagina abbia i form consecutivi f0,f1,etc... e metti 10 al posto della variabile <?php echo $num; ?>; nel ciclo js
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Nada ...continua a non andare!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Link alla pagina pubblica
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Scusa la mia ignoranza ma che vuol dire "Link alla pagina pubblica"???

  8. #8
    Nessuna saprebbe indicarmi una soluzione? Anche qualcosa di già sviluppato, esempi, script ...
    Sono disperato.
    Grazie

  9. #9
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    ma scusa ma un po' di istruzioni di controllo le potresti mettere, cosa restituisce il result ad esempio? prova a mettere un alert data

    codice:
    success: function(data) {
            alert(data);
    	if (data.result === "ok") {								
    	     document.f.a.value='Rispondi ...';	
    	} 
            else {
    	     $("#error_post").show();	
    	     $("#error_post").html(data.result);
    									
    	}
    }

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    il ciclo è inutile, per applicare il submit a tutti i form basta

    $("form").submit(

    poi devi inviare tutti i campi di ogni form? o solo i campi del form su cui stai facendo il submit?

    se devi inviarli tutti, ti basta questo:

    $("form").serialize();

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.