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

    Utilizzare variabili php in javascript

    Salve, ho un piccolo problema da risolvere.
    Volevo chiedervi come posso utilizzare una variabile php in javascript.
    So che chi leggerà queste righe dirà che è impossibile per cui spiegherò il problema sperando che qualcuno possa dirmi come procedere.
    In sostanza devo recuperare dei dati da un file txt sul server ed utilizzarli in locale.
    Per recuperare i dati utilizzarei php, apro il file in txt e recupero i dati in variabili php.
    Nella stessa pagina, ho un forum e vorrei che in base ai dati che vengono inseriti dall'utente, mi compaia il valore di una variabile recuperata in php in una casella di testo.
    Purtroppo non sò come impostare il lavoro.
    Mi sapete dare qualche consiglio.
    Grazie mille.
    Ms.

  2. #2
    bhe oddio, avere questo dubbio significa conoscere molto poco di php e javascript - non te lo dico, sia chiaro, in quanto sarebbe una colpa, ci mancherebbe! ma nel senso che il forum difficilmente può ovviare a carenze di base o trasformarsi in un luogo di didattica su temi ampi e generali.

    Ad ogni modo, vedo di fartela breve - si può eccome.

    Data una variabile in php che so
    $boh='bla bla bla';

    per passarla a javascript (e in questi casi le variabili servono prressochè sempre a fornire i valori da assegnarsi alle variabili javascript) basta buttarle in echo dentro il javascript, a patto che il javascript venga stampato da una pagina php
    codice:
    <?php
    //bla bla
    $boh="bla bla bla";
    
    echo <<<XYZFERTE
    <script>
    var bohinjavascript='$boh';
    alert(bohinjavascript);
    </script>
    XYZFERTE;
    ?>
    Ora, il tuo principale problema si incontra se la variabile php include apici (cioè ' oppure "): a seconda del tipo di apici che potrebbero circondare la variabile javascript (se ci fai caso, nell' esempio sopra bohinjavascript essendo un tipo di dato Stringa presenta il valore racchiuso fra apici singoli), se tali apici sono presenti ANCHE nella variabile php, prima di assegnarli al javascript di tali apici va fatto l' escape.

    Esempio
    ===============
    //bla bla
    $boh="O' sole mio!";//nota l'apice dopo la O

    $boh2=str_replace("'", "\\'", $boh);/*creo per maggior chiarezza altra variabile $boh2, e faccio il replace dell' apice premettendoci il carattere di escape \. Il motivo per cui ce ne sono due cioè \\ è che la espressione sta fra apici doppi " poichè non si poteva circondare un apice singolo ' con altri due apici singoli: ''' darebbe errore. Però fra apici doppi ANCHE in php il carattere di escape viene letto come escape, epr cui occorre metterne due consecutivi per fare l' escape del carattere di escape ovvero dirgli: questo carattere di escape non è un carattere di escape ma è proprio uno slash che voglio che tu, Php, mi metti nella espressione: esso poi, una volta passato alla variabile javascript che so essere fra apici singoli, lì in javascript mi fungerà da escape - dell' apice*/

    echo <<<XYZFERTE
    <script>
    var bohinjavascript='$boh2';
    alert(bohinjavascript);
    </script>
    XYZFERTE;
    ===============

    per compiti più complessi, come passare valori da PHP ad array javascript, forse può farti comodo PHP Pass To Javascript Php Array Associative Array Or Matrix

  3. #3
    Ciao.
    Innanzitutto ti ringrazio per i complimenti che mi hai fatto, questo tipo di complimenti mi rendono più tenace nell'affrontare i problemi.
    Sfortunatamente non sono brava come te altrimenti avrei risolto il problema da sola.
    Sarà per la difficoltà in cui mi sono espressa, sarà per la fretta con cui hai letto la mia domanda, stà il fatto che la risposta non ha nulla a che fare con quello che volevo.
    Sono riuscito ad estrapolare qualcosa dalla tua risposta contorta ma non funziona lo stesso.
    Formulo la mia domanda in modo più semplice in modo che tutti la possano capire.
    Ho il seguente codice:

    <?php
    $aaa="Maria";
    ?>

    <form .......
    <input type="text" name="destinatario" onkeypress="funzione()">
    <input type="text" name="risultato" >

    ......
    </form>

    function funzione()
    {
    document.nomeform.risultato.value= variabilephp;
    }

    Ho creato un po di codice con una form all'interno, vorrei che quando l'utente preme un tasto sulla casella input "destinatario", nella casella input "risultato" mi comparisse il contenuto della variabile php settata in fase di caricamento della pagina.

    Questa risposta non vuole essere una provocazione a nessuno, mi piacerebbe soltanto che qualcuno evitasse commenti inutili nelle risposte.
    Credo che questo forum sia fatto per aiutare le persone e non certo per giudicarle, anche io ho aiutato qualcuno che ne aveva bisogno e l'ho fatto senza nessuna presunzione.
    Cordialmente.
    Mariastella.

  4. #4
    Come ti ho già detto il mio non era un rimprovero: ma non è un commento inutile dirti che non conoscere queste cose significa avere ancora delle carenze di base significative quanto a php e javascript.

    Quanto al tuo problema, la mia risposta te lo risolveva già se anzichè reputarla "contorta" tu avessi preso un po' di tempo per analizzarla.

    <?php
    $aaa="Maria";
    ?>

    <form .......
    <input type="text" name="destinatario" onkeypress="funzione()">
    <input type="text" name="risultato" >

    ......
    </form>

    <?php

    echo <<<XYZFERTE
    <script>
    function funzione()
    {
    document.nomeform.risultato.value= '$aaa';/*a patto che in $aaa non ci siano apici singoli*/
    }
    </script>
    XYZFERTE;

    ?>

    Questa è la tua soluzione. Spero che sia quello che cercavi e che tu la capisca.
    Ricorda che qui rispondiamo gratis, per passione, e se ti viene detto nella risposta che occorre studiare di più php e javascript, perchè stampare html in php (e uno script è html) appartiene alle nozioni basilari cioè proprio all' ABC, non è un modo per scoraggiarti ma anzi è anche esso un modo per aiutarti.

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133

    Re: Utilizzare variabili php in javascript

    Originariamente inviato da Mariastella1975
    ...ho un forum e vorrei che in base ai dati che vengono inseriti dall'utente, mi compaia il valore di una variabile recuperata in php in una casella di testo...
    Oppure usi ajax o jquery guide
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Andreaaaaaa
    Non sa passare le variabili da php all' html... se la mandi sul pianeta Ajax o Jquery chissà che succede

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da TrueLies
    Andreaaaaaa
    Non sa passare le variabili da php all' html... se la mandi sul pianeta Ajax o Jquery chissà che succede
    Non avere pregiudizi, forse vedendo un mondo nuovo si stimola e comunque io gli ho dato solo un consiglio che può benissimo ignorare
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Anzi mettiamola in una versione anche più semplice, che non vorrei indentasse la riga
    XYZFERTE;

    Per cui:

    <?php
    $aaa="Maria";
    ?>

    <form name="nomeform">
    <input type="text" name="destinatario" onkeypress="funzione()">
    <input type="text" name="risultato" >
    </form>


    <script>
    function funzione()
    {
    document.nomeform.risultato.value= "<?php echo $aaa; ?>";/*a patto che in $aaa non ci siano apici doppi*/
    }
    </script>

  9. #9
    Ciao.
    Innanzitutto ringrazio Andrea ma studiare altri linguaggi di programmazione non è nelle mie intenzioni, preferisco risolvere il problema con le "nozioni di base" che ho.
    Il mio compito è di fare qualche ritocchino al mio sito internet e non certo fare la programmatrice, non credo di avere altri stimoli (almeno per il momento).
    Per quanto riguarda TrueLies non volevo sostenere che le tue parole fossero un rimprovero ma non sono certo un complimento, di sicuro non era qualcosa che avevo richiesto.
    Ho creato un intero sito in php, html e javascript per cui mi reputo una persona soddisfatta di quello che ha fatto.
    Non è mia intenzione manifestare il mio livello di conoscenza dei linguaggi di programmazione che non sono alti ma che non sono neanche elementari.
    La soluzione tua:
    document.nomeform.risultato.value= '$aaa';
    è stata provata prima di postare la mia richiesta su questo forum e purtroppo non va.
    Ho provato l'ultima istruzione con il php e funziona benissimo.
    Utilizzare variabili php in javascript con l'istruzione che mi hai dato ("<?php echo $aaa; ?>") è stata ampiamente utilizzata nel mio sito ma, siccome è da più di 6 mesi che non programmo, mi era sfuggita: PERDONATEMI.
    Credo che una momento di "defaillance" possa anche accadere a chi programma due volte l'anno.
    Rispondere gratis e per passione credo che siano regole del forum e non una scelta dell'utente, anche io mi sono adeguata e aiutato chi ne aveva bisogno.
    Mi scuso ma non era mia intenzione essere scontrosa ma mi è arrivato qualcosa che non ho chiesto.
    Dire "spero di ricambiare" mi sembra eccessivo visto il mio livello di conoscenza, magari ricambierò verso qualcuno che abbia le mie stesse conoscenze.
    Grazie di tutto e a tutti.
    Ms.

  10. #10
    Ma guarda che non c'è problema.

    Quanto a stampare in php, entrambe le versioni che ti ho fornito funzionano -

    document.nomeform.risultato.value= '$aaa';

    certamente non va, se non la metti dentro una echo. In tal caso, le echo in php sono di due tipi, o quella con cui hai già familiarità:
    <?php echo $aaa ?>

    o quella dell' echo multiriga, che proponevo nella prima versione e che a mio avviso rende i codici molto più leggibili (è questione di preferenze, ma trovo meglio stampare le variabili in php senza scrivere ogni volta <?php echo eccetera):

    echo <<<una_riga_di_testo_casuale_qui
    document.nomeform.risultato.value= '$aaa';
    una_riga_di_testo_casuale_qui;

    ora, va.

    Data la istruzione echo, o print (sono alias), per scrivere più righe di codice in echo conservando i ritorni a capo, basta scrivere:
    echo
    poi uno spazio e tre segni
    <<<
    poi qui una qualche riga di testo a scelta, meglio se bizzarra
    un ritorno a capo
    da qui in poi metti tutto il codice HTML che vuoi con tutti i ritorni a capo che vuoi e qualsiasi variabile php (attenzione: variabile, non espressione) ci metti, la stamperà. L'unica cautela, se la variabile è composta come ad esempio $unaarray[$unindice] oppure $unaclasse->unaproprieta allora vanno messe fra graffe {$unaarray[$unindice]}, {$unaclasse->unaproprieta}. per le variabili semplici non servono le graffe.

    poi concludi il blocco di codice con un ritorno a capo e mettendo la stringa di testo bizzarra SENZA indentazioni o altro prima, nemmeno uno spazio bianco, e aggiungi un punto e virgola:

    echo <<<oewiowhkerthwk
    <form><input type="text" />ciao
    <div>boh</div>
    altrotesto $PAMunaVariabilePHP altro testo


    un paragrafo $PAMaltravariabilePHP
    il paragrafo finisce.</p>
    </form>
    sei il visitatore numero {$sqlVisitatori->numeroVisiteAttuali}


    grazie per aver visitato la mia pagina il giorno $giornoDaPhp

    se volete contattarmi scrivetemi a $emailDaPhp
    oewiowhkerthwk;

    Con quella tipologia di echo multiline puoi scrivere tutto l'html che vuoi senza preoccuparti di mettere <?php echo eccetera

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.