Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    39

    recupero variabile javascript

    ciao!

    chi mi può spiegare, in generale, come si fa per recuperare/trasferire una variabile calcolata con una funzione javascript ad una variabile php??.

    questa è la funzione javascript per calcolare i mesi con un valore ritornato da un'altra funzione javascript (uso la codifica php per evidenziarla)
    Codice PHP:
    function caldata(valore){
    var 
    risul = (valore / (365));
    anno Math.floor(risul);
    mesi Math.floor((risul anno) * 365 /30,4167);
    diffM = ((anno 12) + mesi);

    nel documento è inserita così per la visualizzazione
    Codice PHP:
    <script type="text/javascript">document.write(diffM);</script> 
    per recuperarla io pensavo che così potesse bastare, ma non funzia
    Codice PHP:
    <script type="text/javascript">
    <?php echo $mesiC?>document.write(diffM); <?php ?>
    </script>
    why?? pecchè??

    grazie dell'interessamento
    il mio vano motore è troppo vano e poco motore (elio e le storie tese)
    Infinite cose da fare e così poco tempo (Joker a Batman)

  2. #2
    Spesso su questo forum leggo messaggi di utenti che fanno ancora molta, molta confusione sul funzionamento di base del sistema client-server, che è il concetto sul quale si basa PHP essendo un linguaggio lato server. Consiglio vivamente a chiunque sia ancora agli inizi con la programmazione PHP, di studiare bene PRIMA i concetti basilari del funzionamento, e DOPO il linguaggio vero e proprio. Altrimenti questo tipo di confusioni continueranno ad esistere.

    Il funzionamento, generalmente, si basa su un client (il browser dell'utente) che invia una richiesta ad un server sul quale risiede del software in grado di elaborare quella richiesta. La richiesta è, ad esempio, la visualizzazione di una particolare pagina di un sito.

    Il server riceve la richiesta inviata dal client, e la elabora per produrre dei risultati. Questa elaborazione avviene solo ed esclusivamente sul server, ed i risultati prodotti sono (in genere) costituiti da un blocco di codice HTML, XML, JavaScript o qualunque altro linguaggio che può essere elaborato da un browser. Questo blocco di codice viene quindi inviato al client, e rappresenta la risposta del server alla richiesta effettuata dal client.

    L'utente così visualizza sul browser la pagina che ha richiesto.

    E' fondamentale notare che il software lato server (PHP appartiene a questa categoria) può "interagire" col software lato client (browser ed interprete JavaScript) perchè è lui che produce il codice che dovrà essere letto dal client. PHP produce una risposta contenente ad esempio HTML e JavaScript, e può ad esempio inserire del testo particolare all'interno del HTML e può assegnare ad una variabile JavaScript un particolare valore.

    Ma non è possibile il contrario. Il software lato client (JavaScript e HTML) non può interagire con quello lato server, da questo punto di vista non c'è nessun collegamento diretto che va dal client al server. L'unico modo in cui il client può interagire col server è quello di "compiere un'azione", cioè ad esempio visualizzare un'altra pagina.

    Quello che chiedi tu, quindi non è fattibile in modo diretto perchè stai cercando di assegnare ad una variabile PHP (che viene eseguito sul server) un valore prodotto da una funzione JavaScript (che viene eseguito sul client, DOPO l'esecuzione lato server del PHP).

    L'unico modo per fare quello che chiedi è "compiere un'altra azione", cioè richiedere un'altra pagina. Che si traduce in questo caso come fare un redirect automatico passando alla pagina un valore ad esempio come query string (cioè appeso all'URL della pagina, che poi verrà letto come $_GET['nome_campo'] dal PHP eseguito al momento della richiesta di questa nuova pagina, dopo il redirect).

    Altra cosa, questo redirect NON deve essere fatto tramite PHP ma tramite JavaScript perchè la produzione di quel valore (calcolato da una funzione JS) viene fatta lato client, quindi anche il redirect all'URL contenente quel valore deve essere fatta lato client.

    Dopo aver calcolato il valore con la tua funzione JavaScript, puoi mettere un'istruzione come questa per dire all'interprete JS di fare un redirect alla stessa pagina passandole il valore nell'URL:

    codice:
    window.location = 'pagina.php?val=' + valore_javascript;
    A questo punto, appena il server riceverà questa nuova richiesta potrà elaborare il valore passatogli. Da PHP devi quindi leggere quel valore con:

    Codice PHP:
    $valore_php $_GET['val']; 
    Trovavo doverose queste precisazioni, visto che sono la base del funzionamento di un sito web scritto in PHP.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    39
    ciao!

    grazie per le tue doverose precisazioni, ma il problema di interazione tra php e javascript lo conosco anch'io.

    nel mio specifico il layout della videata e composta da tanti <div> flootanti attivati o non attivati da delle variabili

    il primo <div> mi esegue alcune funzioni javascript per eseguire operazione e verifiche su determinati dati in un form.

    all'invio dei dati del form, il primo div con il form viene ricaricato con i campi blank, il secondo div viene attivato dalle risposte(variabili) inviate dal server, in base ai seguenti dati, alcune funzione javascript estrapolano e/o calcolano i dati per inviarli al terzo <div> (quello incriminato).

    io sono d'accordo con te che non è un modo di operare molto ortodosso, anzi per nulla, ma tieni conto che il 90% del javascript è erediato e non modificabile e il dato lo ottengo solo dal javascript, il secondo problema e che javascript lo scopro adesso, passo dopo passo mi sto facendo una cultura, il terzo problema o grande idea che ho avuto e che se posso vedere il risultato della funzione javascript con document.write automaticamente il dato è disponibile e quindi utilizzabile per il terzo <div>.

    volevo solo sapere come poter recuperare il valore di diffM per assegnarlo ad una variabile PHP

    ciao e grazie
    il mio vano motore è troppo vano e poco motore (elio e le storie tese)
    Infinite cose da fare e così poco tempo (Joker a Batman)

  4. #4
    Originariamente inviato da Jos
    grazie per le tue doverose precisazioni, ma il problema di interazione tra php e javascript lo conosco anch'io.
    io direi proprio di no e questo lo dimostra

    per recuperarla io pensavo che così potesse bastare, ma non funzia
    Codice PHP:
    <script type="text/javascript">
    <?php echo $mesiC?>document.write(diffM); <?php ?>
    </script>
    al php che tu gli scrivi document.write non gliene potrà mai fregare niente, mica interpreta il javascript ... che è letto e sfruttato SOLO dal client ...


    Originariamente inviato da Jos
    volevo solo sapere come poter recuperare il valore di diffM per assegnarlo ad una variabile PHP
    non puoi, se non attraverso un'altra azione, come detto da ohMyGod ... quindi AJAX è a grandi linee la soluzione al tuo problema
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.