Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    eseguire uno script.php quando premo il pulsante di un form

    Ciao a tutti,
    spero che sia la sezione giusta dove postare dal momento che parlo di ajax.

    Ho un form in una pagina.php (ma potrebbe essere anche html) e ho bisogno di eseguire uno script.php quando premo il pulsante ok del form, SENZA RICARICARE LA PAGINA.

    Questa esigenza nasce dal fatto che quando premo il pulsante ok del form devo aggiornare un database MySQL senza ricaricare la pagina, quindi sicuramente ho bisogno di ajax

    Qualcuno può aiutarmi ?

    Grazie
    Guidino

  2. #2

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se il form non dev'essere inviato, ma deve fare tutto ajax, ti conviene settare comunque il campo action, nel caso in cui l'utente abbia js disabilitato, e inviare eventuali informazioni simulando un comportamento GET. In questo modo, qualsiasi cosa accada, hai la certezza che verranno inviate le stesse informazioni alla pagina script.php:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function aggiornamentoOK () {
    	alert(this.responseText);
    }
    
    function aggiornaDB (oForm) {
    	var sGet = "", aFields = oForm.elements, oReq = new XMLHttpRequest();
    	oReq.onload = aggiornamentoOK;
    	for (var nItem = 0; nItem < aFields.length; !aFields[nItem].name || (sGet += "&" + escape(aFields[nItem].name) + "=" + escape(aFields[nItem].value)), nItem++);
    	oReq.open("GET", oForm.getAttribute("action") + "?" + sGet.slice(1), true);
    	oReq.send(null);
    	return false;
    }
    </script>
    </head>
    <body>
    <form name="tuoForm" action="script.php" method="get" onsubmit="return aggiornaDB(this);">
    
    
    Campo di esempio #1: <input type="text" name="campoDiEsempio1" /></p>
    
    
    Campo di esempio #2: <input type="text" name="campoDiEsempio2" /></p>
    
    
    <input type="submit" value="Esegui script" /></p>
    </form>
    </body>
    </html>
    Se invece il form dev'essere inviato dopo la richiesta ajax a un'altra pagina diversa da script.php, puoi fare così:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Esempio</title>
    <script type="text/javascript">
    function aggiornamentoOK () {
    	alert(this.responseText);
    	document.tuoForm.setAttribute("action" , "azione.php");
    	document.tuoForm.submit();
    }
    
    function aggiornaDB () {
    	var oReq = new XMLHttpRequest();
    	oReq.onload = aggiornamentoOK;
    	oReq.open("GET", "script.php", true);
    	oReq.send(null);
    	return false;
    }
    </script>
    </head>
    <body>
    <form name="tuoForm" action="attivareJavascript.html" method="post" onsubmit="return aggiornaDB();">
    
    
    Campo di esempio: <input type="text" name="campoDiEsempio" /></p>
    
    
    <input type="submit" value="Esegui script" /></p>
    </form>
    </body>
    </html>
    In questo secondo caso l'utente verrà rimandato alla pagina "attivareJavascript.html" nel caso in cui avesse js disabilitato e non fosse possibile eseguire la chiamata ajax.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    carlomarx ti ringrazio,
    ho provato la prima soluzione e sembra funzionare.

    Ancora grazie.

    Guidino

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    carlomarx scusami avrei un'altra domanda.

    Nella pagina html, con javascript ho la necessità di impostare al volo il value del campo del mio form, è possibile una cosa del genere?

    codice:
    <form name="tuoForm" action="script.php" method="get" onsubmit="return aggiornaDB(this);">
        
    
    Campo di esempio #1:<input type="text" name="campoDiEsempio1" value=<script>val</script> /></p>
        
    
    <input type="submit" value="Esegui script" /></p>
    </form>
    val sarebbe una variabile javascript definita così:
    <script type="text/javascript">
    var val = "mioValore";
    segue il tuo codice js...
    </script>

    ovviamente ho provato e non funziona.

    Grazie
    Guidino

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    All'apertura della pagina? Se sì..:

    codice:
    window.onload = function () { document.tuoForm.campoDiEsempio1.value = "Ciao mondo"; };
    Il codice va inserito in campo libero fuori da ogni funzione...

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    P.S. Ci sono input radio nel tuo form? Se sì bisogna modificare leggermente lo script...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Grazie della risposta,
    non ho input radio nel form.

    cambierò il value dei campi input del form con una funzione javascript quando mi cambia il valore di alcune variabili js quindi con document.tuoForm.campoDiEsempio1.value dovrei essere a posto.

    scusami perchè a questo avrei dovuto arrivarci da solo


    Guidino

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