Reputation: 33
I have a button with onclick function. It passes a variable $x into the java script. Shortly what i want to do is to pass the $x="aaa" to the javascript, and make the function to change this variable into lets say $x="bbb" without refreshing the website. So i would be able to click it all the time and the js could change the value of given variable. I mean the content variable going from button to javascript would be changed depending on js function code. This may sound complicated i am really sorry for that. Any ideas? (the code below i just made up because it would be to long to explain here all my code that is very long now)
<?php x = "aaa"; ?>
<button onClick="someFunction(<?php $x ?>)"></button>
<script>
function someFunction (x){
//what can i do here to make this "aaa" string in variable change
//into for example "bbb" on clicking it again?
}
</script>
Upvotes: 0
Views: 4905
Reputation: 1
After research and other's help, this works :
//This gets the page's width on the first load
let sWidth = window.screen.width;
//This says : execute "myfunction" when "resize" event occurs
window.addEventListener("resize", myFunction);
//details of myFunction
function myFunction() {
//first get the page's width again
let sWidth = window.screen.width;
//show me the page's width within console which is within inspect
console.log(sWidth);
//now this is for differentiating Mobile and Desktop version
//which you can change the statement by need
if (sWidth <= 576){
console.log("Mobile version");
}else{
console.log("Desktop version");
}
}
Upvotes: 0
Reputation: 33813
With the above code in mind... Not knowing if it is specifically strings that you wish to manipulate with javascript but you can use php / a server side language to generate the variable value based upon whatever calculations you need and then use javascript to play with it on the client side.
<button onClick="someFunction()">Click me now to see what happens to x</button>
<script>
<?php echo "var x = 'a';"; ?>
function someFunction(){
x=parseInt( x.charCodeAt(0) );
x++;
x=String.fromCharCode( x );
alert(x)
}
</script>
Upvotes: 0
Reputation: 25352
You can't change server side language value from client script
All you can do is to pass that php value to javascript
Like this
<button onClick="someFunction(<?php echo $x; ?>)"></button>
But you can do like it
Try like this
js
$.ajax({
method: "GET",
url: "some.php",
data: { x: "John" }
})
.done(function( msg ) {
<?php x=$_COOKIE["X"]; ?>
});
some.php
$_COOKIE["X"]=$_GET["x"];
EDIT
How I can cut it off from button arguments
HTML
<button id="myButton" onclick="someFunction(<?php $x ?>)"></button>
JS
$("#myButton").on("click",function(){
var onclick=$(this).attr("onclick");
var str="Hellow world";
var someFunction="someFunction('"+str+"')";
$(this).attr("onclick",someFunction);
});
Upvotes: 1