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

    [Ajax] Invio dati submit

    Buon pomeriggio.
    Ho una pagina view-zul.php
    In questa pagina ho il form con i due menu a tendina per la scelta dell'anno e del mese.
    Nella stessa pagina, ho anche la funzione ajax per l'invio dei dati, a se stessa.
    Purtroppo non capisco come mai, se scelgo anno e mese, quando vado a stamparli a video non me li fa vedere.
    E pure, l'alert della funzione mi restituisce anno e mese scelti.
    codice:
    //<form id="frmSearch" name="frmSearch" action="javascript:void(0)" method="POST">
    //<button type="button" class="btn btn-info" onclick="subSearch()" tabindex="10">Search</button>
    //</form>
    
    
    function subSearch(){
    			var anno = $("#anno").val();
    			var mese = $("#mese").val();			
    			//alert(anno +"-"+ mese);
    			if(anno==""){
    				alert("Devi scegliere anno");
    				document.frmSearch.anno.focus();
    				return;
    			}
    			if(mese==""){
    				alert("Devi scegliere mese");
    				document.frmSearch.mese.focus();
    				return;	
    			}
    			if (confirm("Procedi?")){
    			$.ajax({
    				   type : "POST",
    				   url  : "view-zul.php",
    				   data : "anno=" + anno +
    						  "&mese=" + mese,
    				   dataType: "html",		  
    					success: function(msg){
    					window.location = "view-zul.php";
    						
    					}
    				});
    			}
    			else{
    				return;
    			}
    		}
    In pratica i dati dovrebbe inviarli a se stessa.
    Come faccio?
    Grazie mille.

  2. #2
    Non te li fa vedere perché fai un redirect

    codice:
    window.location ="view-zul.php";
    


    e la pagina torna allo stato iniziale

  3. #3
    ho risolto cosi:
    codice:
    function subSearch(){
    			if (document.frmSearch.anno.value == "") {
    				alert("Devi scegliere anno");
    				document.frmSearch.anno.focus();
    				return;
    			}
    			if (document.frmSearch.mese.value == "") {
    				alert("Devi scegliere mese");
    				document.frmSearch.mese.focus();
    				return;
    			}
    			// Se è stato scelto anno e mese verrà effettuato il submit
    			document.frmSearch.submit();
    }
    e amen.

    Ho un altro problema.
    Nella stessa pagina ho questo script che mi deve aggiornare la pagina di continuo
    codice:
    $( document ).ready(function(time) {
    			setInterval(function() {
    				$("#refresh").load(location.href+" #refresh>*","");
    			}, 1000);
    		});
    Fin qui tutto ok.
    Ma, attraverso la ricerca di cui sopra, vorrei fare in modo di fermare il refresh, dopo aver eseguito il "submit".
    Come posso fare?
    Grazie ancora.

  4. #4
    Documentati sulla funzione setInterval, puoi interromperla tramite clearInterval()

  5. #5
    grazie.
    Le sto provando tutte con clearInterval(), ma niente non funziona.
    Ma credo che non funziona, perché faccio il submit della stessa pagina.
    Quindi, setInterval riparte sempre.
    Comunque ho fatto cosi:
    codice:
    var myVar = setInterval(function(){myTimer()},1000);
    function myTimer() {
    	$("#refresh").load(location.href+" #refresh>*","");
    }
    function myStopFunction() {
    	clearInterval(myVar);
    }
    function subSearch(){
    	if (document.frmSearch.anno.value == "") {
    		alert("Devi scegliere anno");
    		document.frmSearch.anno.focus();
    		return;
    	}
    	if (document.frmSearch.mese.value == "") {
    		alert("Devi scegliere mese");
    		document.frmSearch.mese.focus();
    		return;
    	}
    	myStopFunction();
    	document.frmSearch.submit();
    }
    Booo....aiuto.

  6. #6
    ho provato a non eseguire il submit
    codice:
    //document.frmSearch.submit();
    ma soltanto la funzione
    codice:
    myStopFunction();
    //document.frmSearch.submit();
    ed effettivamente il refresh si è fermato.
    Come posso gestire entrambe le situazioni, submit e myStopFunction?
    Grazie.

  7. #7
    ho risolto con php.
    Ho controllato se ho eseguito una ricerca.
    Se ho eseguito una ricerca, aumento il timer da un secondo=1000 a 300000, cosi do modo di visualizzare al meglio la lista dei risultati.
    E nel caso, l'utente fa la ricerca per mese ed anno correnti, riporto il timer a 1000 cosi:
    codice:
    <?php
    $anno = isset($_POST['anno']) ? $_POST['anno'] : "";
    $mese = isset($_POST['mese']) ? $_POST['mese'] : "";
    # imposto il timer di refresh ad un secondo
    $sTempo = 1000;
    /* per stoppare oppure aumentare il refresh della pagina controllo se:
    1) ho eseguito una ricerca
    2) se anno oppure || mese sono diversi da quelli odierni
    3) ed anche se è stata eseguita comunque una ricerca
    */
    if(($anno!=date('Y') || $mese!=date('m')) && ($anno!="" && $mese!="")){
    	# imposto il timer modificato a trenta minuti
    	$sTempo = 300000;
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <title></title>
    <script>
    var myVar = setInterval(function(){myTimer()},<?php echo $sTempo;?>);
    function myTimer() {
    	$("#refresh").load(location.href+" #refresh>*","");
    }
    function myStopFunction() {
    	clearInterval(myVar);
    }
    function subSearch(){
    	if (document.frmSearch.anno.value == "") {
    		alert("Devi scegliere anno");
    		document.frmSearch.anno.focus();
    		return;
    	}
    	if (document.frmSearch.mese.value == "") {
    		alert("Devi scegliere mese");
    		document.frmSearch.mese.focus();
    		return;
    	}
    	myStopFunction();
    	document.frmSearch.submit();
    }
    Perfetto.
    Grazie dell'interesse.
    Alla prossima buona giornata.

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.