Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use a JavaScript variable as a PHP variable? [duplicate]

Tags:

I'm trying to include JavaScript variables into PHP code as PHP variables, but I'm having problems doing so. When a button is clicked, the following function is called:

<script type="text/javascript">     function addTraining(leve, name, date)     {         var level_var = document.getElementById(leve);         var training_name_var = document.getElementById(name);         var training_date_var = document.getElementById(date);          <?php             $result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");         ?>  </script> 

Is it possible?

like image 507
Selom Avatar asked Mar 04 '10 12:03

Selom


2 Answers

PHP is run server-side. JavaScript is run client-side in the browser of the user requesting the page. By the time the JavaScript is executed, there is no access to PHP on the server whatsoever. Please read this article with details about client-side vs server-side coding.

What happens in a nutshell is this:

  • You click a link in your browser on your computer under your desk
  • The browser creates an HTTP request and sends it to a server on the Internet
  • The server checks if he can handle the request
  • If the request is for a PHP page, the PHP interpreter is started
  • The PHP interpreter will run all PHP code in the page you requested
  • The PHP interpreter will NOT run any JS code, because it has no clue about it
  • The server will send the page assembled by the interpreter back to your browser
  • Your browser will render the page and show it to you
  • JavaScript is executed on your computer

In your case, PHP will write the JS code into the page, so it can be executed when the page is rendered in your browser. By that time, the PHP part in your JS snippet does no longer exist. It was executed on the server already. It created a variable $result that contained a SQL query string. You didn't use it, so when the page is send back to your browser, it's gone. Have a look at the sourcecode when the page is rendered in your browser. You will see that there is nothing at the position you put the PHP code.

The only way to do what you are looking to do is either:

  • do a redirect to a PHP script or
  • do an AJAX call to a PHP script

with the values you want to be insert into the database.

like image 84
Gordon Avatar answered Sep 17 '22 02:09

Gordon


<script type="text/javascript"> var jvalue = 'this is javascript value';  <?php $abc = "<script>document.write(jvalue)</script>"?>    </script> <?php echo  'php_'.$abc;?> 
like image 29
dg_0175 Avatar answered Sep 18 '22 02:09

dg_0175