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

    Al click del button: 2 operazioni

    Ciao,
    ho realizzato una pagina che permette di eseguire alcuni calcoli.
    In pratica vi è un form che contiene due textbox in cui inserisco alcuni valori numerici e 3 textbox di uscita, premendo un Button 'submit' vengono eseguiti alcuni calcoli e visualizzati sulle 3 textbox.
    Funziona perfettamente, ma vorrei che quando premo il Button, mi venga scritto su un server il valore inserito.
    Riesco a fare perfettamente le due cose, ma non riesco a farle contemporanemante ed ecco perchè:

    La parte di connessione ed invio PHP si avvia con questa istruzione
    if (isset($_POST['submit']))
    {

    Ma il form con le textbox ed il button contiene: <form onsubmit="return calculator(this);">
    per farlo funzionare per l'invio dovrei impostarlo così: <form action="" method="post">

    Come dicevo, o faccio una cosa, o faccio l'altra. C'è modo di farle entrambe???
    La parte del PHP l'ho presa da qui: http://www.leo73.net/blog/2013/07/02...ungere-record/

    Potete aiutarmi???
    Grazie!!!

  2. #2
    bhe nella funziona calculator potresti usare ajax e fare anche l'altra operazione.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Sinceramente si capisce poco da quello che scrivi ma pare che nel form tu abbia dello javascript che faccia i calcoli, per nn perdere questo codice ti conviene fare una chiamata al codice PHP cn ajax
    Ultima modifica di linoma; 30-04-2015 a 20:44
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Grazie, mi potete spiegare come fare?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    nella funzione che chiami nell'onsubmit (calculator()) inserisci anche la parte di chiamata verso il server usando, ad esempio, quello che scrivono qui
    http://www.javascriptkit.com/dhtmltu...getpost2.shtml

  6. #6
    Grazie per le risposte, ma non capisco nel codice ajax quale è la parte che mi avvia la parte PHP di invio dati sul DB.
    Va be, non fa niente, lascio tutto come era, pensavo fosse facile, ma per fare una cosa banale si devono usare 4 sistemi diversi (HTML,PHP,JAVASCR,AJSX).
    CIAO

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non sono sistemi diversi, ma linguaggi diversi (di cui due sono parenti stretti o anche omologhi)

    molto sinteticamente, una chiamata AJAX fa una chiamata diretta ad un server per eseguire qualche attività senza che l'utente ne abbia percezione o senza che venga "rimbalzato" da una pagina ad un'altra

    nella pagina che ti ho linkato prima, nel secondo snippet di codice è evidenziata in rosso la chiamata verso il server (se noti c'è un indirizzo ".php")

    non sapendo cosa fa esattamente il tuo codice e il tuo script viene male orientarti meglio, prendilo come uno spunto per approfondire e risolvere il tuo problema (si trovano esempi di codice già pronto dappertutto sul web)

  8. #8
    In pratica: abbiamo un sito dove i clienti possono inserire le dimensioni e il peso di certo materiale in 3 textbox, premendo calcola vengono calcolati i prezzi, spedizone, ecc.
    Un semplice javascript che ho trovato e personalizzato, funziona benissimo (qualche molitiplicazione e semplici operazioni matematiche da 5° elementare)!
    Ora mio marito dice: per sapere cosa cercano i clienti, che misure, che pesi, facciamo in modo che quando i clienti calcolano il preventivo, esso venga salvato in un DB, in modo da sapere cosa cercava la gente. (non so se mi sono spiegata)
    Sono riuscita a far funzionare entrambe le cose, ma non contemporaneamente

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    sperando che il moderatore non si arrabbi dato che è tutto javascript, ti posto un esempio di codice per fare i calcoli, mostrarli a video all'utente e inviarli al server

    codice:
    function calculator() {
        var uno = document.getElementById('uno').value;
        var due = document.getElementById('due').value;
        var dif = uno - due;
        var mol = uno * due;
    
    
        document.getElementById('dif').value = dif;
        document.getElementById('mol').value = mol;
    }
    
    
    function ajaxRequest(){
        var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
        if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
            for (var i=0; i<activexmodes.length; i++){
                try{
                    return new ActiveXObject(activexmodes[i])
                }
                catch(e){
                    //suppress error
                }
            }
        }
        else if (window.XMLHttpRequest) // if Mozilla, Safari etc
            return new XMLHttpRequest()
        else
            return false
    }
    
    
    function execute() {
        // fa il calcolo
        calculator();
    
    
        // apre una richiesta AJAX
        var mypostrequest=new ajaxRequest()
        mypostrequest.onreadystatechange=function(){
            if (mypostrequest.readyState==4){
                if (mypostrequest.status==200 || window.location.href.indexOf("http")==-1){
                    //document.getElementById("result").innerHTML=mypostrequest.responseText
                }
                else{
                    alert("An error has occured making the request")
                }
            }  
        }
    
    
        // setta i valori prendendoli dal form compilato da calculator()
        var difvalue=encodeURIComponent(document.getElementById("dif").value)
        var molvalue=encodeURIComponent(document.getElementById("mol").value)
        // prepara la chiamata POST e la invia all'indirizzo operator.php 
        var parameters="dif="+difvalue+"&mol="+molvalue
        mypostrequest.open("POST", "operator.php", true)
        mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
        mypostrequest.send(parameters)
    
    
        return false;
    }
    invece che richiamare calculator() dall'evento onsubmit del form, devi richiamare execute()
    ovviamente, modificalo secondo i tuoi parametri ed esigenze, è solo un esempio

  10. #10
    Grazie Clasku,
    ma io il PHP ce l'ho nella stessa pagina, non in un file a parte

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.