Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296

    Eseguire script php da javascript

    In uno script php avrei la necessità di prendere un dato inserito in una textbox e di inviarlo ad un altro script.
    Non è possibile farlo con un bottone submit ed avevo pensato a javascript. Solo che mi sono arenato sul come si fa:
    come si fa ad eseguire uno script php da javascript?
    Girando su internet ho trovato solo dei riferimenti ad ajax senza, peraltro, delle indicazioni più chiare. Non è possibile farlo solo tramite javascript? Sempre su internet ho trovato del codice:


    Codice PHP:
    <script language="javascript" type="text/javascript">
    function 
    manda_dati(){

             
    document.write("[img]ricevi.php?nome=[/img]")

    }
    </script> 
    dove ricevi.php dovrebbe essere lo script che riceve il campo "nome"

    Codice PHP:
    <form name="modulo">
    <
    input type="text" name="nome" value="pippo" />
    </
    form>

    [
    url="javascript:void(0)"]manda_dati()[/url

    ma ho come l'impressione che questo codice c'entri poco col mio problema.
    Potete aiutarmi per favore?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non e' chiaro il flusso temporale delle informazioni... tenendo presente che il javascript viene eseguito sul pc client solo dopo che tutto il codice PHP e' stato eseguito sul server... e che le sue azioni possono influre solo sulla pagina successiva o, in caso di utilizzo di ajax, per porzioni di quella corrente.

    Questo in generale, non avendo tu spiegato chiaramente i tuoi intenti.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Pensavo che esporre il problema in modo sintetico lo facesse risultare più chiaro, ma evidentemente, come spesso succede, era chiaro solo a me

    Dunque: ho uno script php con una form in questa form c'è un input text che avvaloro. Dovrei passare il valore di questo campo ad un altro script php e non posso utilizzare un bottone di submit ( a meno di non utilizzarne due cosa che risulterebbe funzionale, ma poco elegante). Allora ho pensato di creare un javascript che prenda il valore di questo input text e lo passi allo nuovo script php solo che non so se si può fare ed eventualmente come.
    Ovviamente il problema è leggermente più complesso, ma a me basterebbe solo sapere questo.
    Spero sia più comprensibile stavolta. Grazie per la risposta.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    un pò di ajax fa al caso tuo allo scatenarsi di un evento lato client tipo onchange sull'input text richiami un funzione javascript che passa tale valore a un pagina php (con get o post) che contiene appunto lo script in php e hai risolto, perdi 10 minuti a capire come fare con ajax e sono sicuro che lo troverai utile in tante altre occasioni

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    <script type='text/javascript'>

    var xho;

    function GetXmlHttpObject(){
    if (window.XMLHttpRequest) return new XMLHttpRequest();
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
    return null;
    }

    function myfunc(myinput){
    var val = myinput.value;
    xho = GetXmlHttpObject();
    if(xho==null){ alert("aggiornare il browser"); return; }
    var url = "pagina_script.php";
    xho.onreadystatechange=myfunc2;
    xho.open("POST", url, true);
    xho.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    sho.send("val="+val);

    }

    function myfunc2(){
    if(xho.readyState == 4){
    var output_script_php = xho.responseText;
    }
    }

    </script>

    <input type='text' onchange='myfunc()' />

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    quindi nella parte javascript la prima funzione inizializza l'oggeto xmlhttpobject 'xho' dichiarata fuori da ogni funzione per essere globale.

    la seconda funzione invia tramite post alla pagina dello script in php il valore dell'input text, che troverai nella variabile $_POST['val']

    la terza funzione non è detto che ti serva, in pratica se la pagina in php da qualcosa in output, l'output lo puoi prendere da xho.responseText, nel caso dello script di esempio metto tale valore nella variabile output_script_php

    Consiglio, evita di farlo onchange, perchè vuol dire che a ogni pressione di tasto sull'input text fai una richiesta al server...


    scusate per il triplo post, ma mi sono caduti i cosiddetti per terra dopo aver scritto tutto quel codice e non riuscivo a inviarlo in una sola risposta, santa funzione indietro del browser

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    ecco il quarto messaggio, perchè non si può editare un messaggio se è passata più di un'ora dal momento in cui è stata postata, nel codice c'è un errore nella parte html che dovrebbe in realtà essere:



    <input type='text' onchange='myfunc(this)' />

  8. #8
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Grazie longilineo, mi pare di capire che in questo caso senza ajax non vado da alcuna parte.
    Il fatto è che(come si è potuto capire) non conosco ajax, ma mi conforta il fatto che tu dica che ci vogliono 15 minuti a capire lo script che hai postato, anche perchè odio fare i semplici copia e incolla senza capire come si ottengono le cose.
    Adesso me lo metto da qualche parte ed inizio a studiarmelo.
    Ancora grazie.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    prego, mi sono accorto di un altro errore:

    sho.send("val="+val);

    in realtà è xho.send("val="+val);

  10. #10
    Utente di HTML.it L'avatar di otello
    Registrato dal
    May 2003
    Messaggi
    296
    Ok

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.