Modificare variabili PHP da JavaScript

personalele

Nuovo Utente
51
10
Ciao a tutti :)
Ho un piccolo problema che potrei "scavalcare" semplicemente impostando il valore di una variabile PHP da Javascript...è possibile farlo?
Vorrei anche capire se è possibile richiamare una funzione JS da PHP e "leggere" (sempre da PHP) il valore di ritorno.
Grazie a tutti.
Gabriele.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Ciao,

Ho un piccolo problema che potrei "scavalcare" semplicemente impostando il valore di una variabile PHP da Javascript...è possibile farlo?

no, non è possibile: JS è un linguaggio client-side, viene eseguito/interpretato dal tuo browser. PHP è un linguaggio server-side, è sul server che viene eseguito - tramite appunto l'interprete PHP.
Ciò che puoi fare è una chiamata usando Ajax, ad esempio.

Vorrei anche capire se è possibile richiamare una funzione JS da PHP e "leggere" (sempre da PHP) il valore di ritorno.
Grazie a tutti.

No, se per funzione intendi proprio una function. Valgono le medesime considerazioni di sopra.
Il codice lato client (HTML, CSS, JS,...) viene restituito dal server e viene poi eseguito in locale sul pc dell'utente.


Che cosa devi fare di preciso? Secondo me possiamo trovare una soluzione differente.
 

personalele

Nuovo Utente
51
10
Ciao,



no, non è possibile: JS è un linguaggio client-side, viene eseguito/interpretato dal tuo browser. PHP è un linguaggio server-side, è sul server che viene eseguito - tramite appunto l'interprete PHP.
Ciò che puoi fare è una chiamata usando Ajax, ad esempio.



No, se per funzione intendi proprio una function. Valgono le medesime considerazioni di sopra.
Il codice lato client (HTML, CSS, JS,...) viene restituito dal server e viene poi eseguito in locale sul pc dell'utente.


Che cosa devi fare di preciso? Secondo me possiamo trovare una soluzione differente.
Ti ringrazio @DispatchCode .
Ho un form PHP dove ho bisogno di mettere un pulsante "nuova registrazione" dovrebbe modificare il valore della a variabile PHP che uso quando faccio il post. Vorrà dire che userò una "hidden" con il valore corretto da prendere in POST e anche per il valore di ritorno dalla funzione, che dovrò associare a qualche evento.
Ti ringrazio!
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,223
1,854
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Sarebbe utile vedere il codice interessato per poterti dare qualche dritta. Secondo me stai facendo qualcosa in modo "non proprio corretto" in questo modo.
 
  • Mi piace
Reazioni: Mursey

personalele

Nuovo Utente
51
10
Sarebbe utile vedere il codice interessato per poterti dare qualche dritta. Secondo me stai facendo qualcosa in modo "non proprio corretto" in questo modo.

PHP:
                $cliente=$_POST['nuovocliente'];              
                $cliente=$this->tabellaCliente->save($cliente);
                $idcliente= $cliente->idcliente;
                header('location: /clienti/nuovo?idcliente=$idcliente');

La funzione 'save' discrimina se salvare o modificare in base al valore dell'idcliente presente nell'array $cliente. Dovendo registrare un nuovo cliente dalla stessa schermata ho bisogno di "resettare" l'idcliente senza "passare" per php. Così non potendo modificare direttamente da js il valore, da un bottone lancio una funzione js che modifica il valore dell'input che contiene, nel form, l'idcliente che verrà poi restituito in POST al PHP (oltre a resettare alcuni campi del form).

Approfitto per chiederti un altro consiglio:
- premetto che in locale funziona tutto, ho i file javascript nella cartella js nella root del sito. Quando carico in remoto e metto come indirizzo "/js/nomefile.js" non c'è verso di farlo caricare (ho anche provato a modificare il percorso, niente) puo' essere un problema di protezione delle cartelle del hosting? Ho messo invece la cartella js dentro "public" e carica tutto regolarmente, ma non mi sembra corretto mettere i js dentro public, o no?
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili