Visualizzazione risultati 1 fino 8 di 8

Discussione: lanciare script PHP per restituirne il valore in una casello di testo nel form

  1. #1
    Guest

    Question lanciare script PHP per restituirne il valore in una casello di testo nel form

    Buongiorno, avrei la necessità di poter eseguire uno script.php da un pulsante in un pagina di un form.php e restituire il risultato in una casella di testo (<input type="text".... dello stesso form, per inviarlo successivamente ad una tabella mysql.

    ho provato il seguente codice:

    <br><input type="button" value="Reads UID" onclick="document.form.UID.value='??';"><br>

    quando clicco sul pulsante, dovrebbe inserire il valore restituito nel tag UID (adesso ovviamente inserisce "??")

    lo script esegue una connessione ssh2 (come estensione PHP in wampserver) verso un microcontroller e preleva dei dati dal bus GPIO.
    Se eseguo lo script funziona correttamente e restituisce il valore recuperato nella pagina html


    Cordialmente
    Ultima modifica di gtr : 29-05-2015 alle ore 16.32.36

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Se vuoi fare il tutto con JavaScript senza dover ricaricare la pagina puoi effettuare una richiesta XHR (anche nota come AJAX). Se cerchi un attimo trovi migliaia di esempi in rete.

  3. #3
    Guest

    Predefinito

    Pensavo a qualcosa di meno ardito, almeno per me.. quindi devo usare Ajax per non spostarmi su un'latra pagina quando si esegue lo script.php tramite il pulsante nel form, corretto? Ho provato questo codice:
    Codice HTML:
    <html.........
    .............
    
    <form name="form" action ="script_sql.php" method = "POST">
    
    <button onclick="myFunction()">Reads UID</button>
    <script type=”text/javascript”>
    function myFunction() {
        document.getElementsByTagName("UID").innerHTML = "testo";
    }
    </script>
    <br><input type = "text" name="UID"><br>
    <br><input type = "text" nam..........
    <br><input type = "text" nam..........
    <br><input type = "text" nam..........
    
    <input type ="submit" value= "-Send to db-"><br><br>
    <input type= "reset" value="erase"><br>
    </form>
    
    </body>
    </html>
    sono sulla strada giusta?
    In caso affermativo dove metto la directory,che si trova in cartella locale al client, dello scritp.php?
    Inoltre anche solo questo codice, qaundo clicco sul bottone Reads UID, mi invia i dati "submit" allo script2.php che salva i dati in tabella..
    Mi sorge spontanea una domanda, ma Ajax non è più indicato per le interazioni client/server?
    Se ho già uno script che segue un'interazione su un host (lato lan in questo caso) che mi restituisce il risultato con uno script.php (in uan pagina html), non è possibile recuperarlo dall'interno del form direttamente e poi scriverlo in un casella?
    Ultima modifica di karl94 : 30-05-2015 alle ore 01.30.40 Motivo: Formattazione del codice

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da gtr Visualizza messaggio
    Mi sorge spontanea una domanda, ma Ajax non è più indicato per le interazioni client/server?
    Se ho già uno script che segue un'interazione su un host (lato lan in questo caso) che mi restituisce il risultato con uno script.php (in uan pagina html), non è possibile recuperarlo dall'interno del form direttamente e poi scriverlo in un casella?
    Beh, se usi PHP e il browser stai già usando un server. Non puoi mica lanciare uno script PHP direttamente nel browser.

  5. #5
    Guest

    Predefinito

    diciamo che ho realizzato l'utilità dell'oggetto XmlHttpReq.
    Codice HTML:
    <script>
    var myRequest = null;
    
    function CreateXmlHttpReq(handler) {
      var xmlhttp = null;
      xmlhttp = new XMLHttpRequest();
      xmlhttp.onreadystatechange = handler;
      return xmlhttp;
    }
    
    function myHandler() {
        if (myRequest.readyState == 4 && myRequest.status == 200) {
            e = document.getElementById("UID");
    		e.innerHTML = (myRequest.responseText);
        }
    }
    
    function UIDREADS() {
        myRequest = CreateXmlHttpReq(myHandler);
        myRequest.open("GET","script_py2.php");
        myRequest.send(null);
    }
    
    <input type="button" value="Reads UID" onClick="UIDREADS()" /><br><br>
    
    Uid <br><input id="UID" type = "text" name="UID"><br>
    con la funzione alert, nessun problema, (nel codice sopra è omesso) mi restituisce il risultato,
    con innerHtml e <div nessun problema mi restituisce il risultato in div.
    con input type="text" resta il problema, non mi scrive il risultato all'interno della casella.... avete intuizioni a riguardo?
    e possibile riprotare ilrisultato nella casella di testo del form?
    Ultima modifica di karl94 : 30-05-2015 alle ore 20.34.23 Motivo: Formattazione del codice

  6. #6
    Guest

    Predefinito

    sto affogando in un bicchiere d'acqua...

  7. #7
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Se hai un elemento input il suo contenuto lo trovi (e imposti) con la proprietà value (proprio come hai già scritto nel tuo primo messaggio di questa discussione), non con innerHTML.
    E quando scrivi del codice sul forum formattalo inserendolo negli appositi tag BBcode, grazie.
    Ultima modifica di karl94 : 30-05-2015 alle ore 20.35.10

  8. #8
    Guest

    Predefinito

    emm... hai proprio un brutto modo di porti, comunque è il risultato che conta, adesso funziona...

    Codice:
    function myHandler () {
    		e = document.getElementById("UID");
    		e.value = (myRequest.responseText);
    }
    
    function myfunction () {
    myRequest = new XMLHttpRequest();
    myRequest.onload = myHandler;
    myRequest.open("GET", "script_py2.php");
    myRequest.send(null);

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •