You have to remember that if JS and PHP live in the same document, the PHP will be executed first (at the server) and the JS will be executed second (at the browser)--and the two will NEVER interact (excepting where you output JS with PHP, which is not really an interaction between the two engines).
With that in mind, the closest you could come is to use a PHP variable in your JS:
<?php $a = 'foo'; // $a now holds PHP string foo ?> <script> var a = '<?php echo $a; ?>'; //outputting string foo in context of JS //must wrap in quotes so that it is still string foo when JS does execute //when this DOES execute in the browser, PHP will have already completed all processing and exited </script> <?php //do something else with $a //JS still hasn't executed at this point ?>As I stated, in this scenario the PHP (ALL of it) executes FIRST at the server, causing:
- a PHP variable $a to be created as string 'foo'
- the value of $a to be outputted in context of some JavaScript (which is not currently executing)
- more done with PHP's $a
- all output, including the JS with the var assignment, is sent to the browser.
As written, this results in the following being sent to the browser for execution (I removed the JS comments for clarity):
<script> var a = 'foo'; </script>Then, and only then, will the JS start executing with its own variable a set to "foo" (at which point PHP is out of the picture).
In other words, if the two live in the same document and no extra interaction with the server is performed, JS can NOT cause any effect in PHP. Furthermore, PHP is limited in its effect on JS to the simple ability to output some JS or something in context of JS.
Is tough to guess what exactly your application is doing by looking at a little bit of code. I would recommend the following just based on what posted here.
1. Add a hidden field
<input type="hidden" id="btnClickedValue" name="btnClickedValue" value="" />2. Store the button inner text into a hidden field each time the button clicked
document.getElementById("btnClickedValue").value = buttontext;3. Then, on the backend / php side, you can write something like below to get the button innerText
echo $_POST['btnClickedValue'];Again, this is just based on what posted here.
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
JavaScript is the client side and PHP is the server side script language. The way to pass a JavaScript variable to PHP is through a request.
Method 1: This example uses form element and GET/POST method to pass JavaScript variables to PHP. The form of contents can be accessed through the GET and POST actions in PHP. When the form is submitted, the client sends the form data in the form of a URL such as:
//example.com?name=valueThis type of URL is only visible if we use the GET action, the POST action hides the information in the URL.
Client Side:
<!DOCTYPE html>
<html>
<head>
<title>
Passing JavaScript variables to PHP
</title>
</head>
<body>
<h2 style="color:green;">
GeeksforGeeks
</h2>
<form method="get" name="form" action="destination.php">
<input type="text" placeholder="Enter Data" name="data">
<input type="submit" value="Submit">
</form>
</body>
</html>
Server Side(PHP): On the server side PHP page, we request for the data submitted by the form and display the result.
<?php
$result = $_GET['data'];
echo $result;
?>
Output:
Method 2: Using Cookies to store information:
Client Side: Use Cookie to store the
information, which is then requested in the PHP page. A cookie named gfg is created in the code below and the value GeeksforGeeks is stored. While creating a cookie, an expire time should also be specified, which is 10 days for this case.
<script>
// Creating a cookie after the document is ready
$(document).ready(function () {
createCookie("gfg", "GeeksforGeeks", "10");
});
// Function to create the cookie
function createCookie(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = escape(name) + "=" +
escape(value) + expires + "; path=/";
}
</script>
Server Side(PHP): On the server side, we request for the cookie by specifying the name gfg and extract the data to display it on the screen.
<?php
echo $_COOKIE["gfg"];
?>
Output:
JavaScript is best known for web page development but it is also used in a variety of non-browser environments. You can learn JavaScript from the ground up by following this JavaScript Tutorial and JavaScript Examples.
PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.