我有一个页面1.php,代码在这里(只是一个克隆)
<?php
include '2.php'
?>
<script>
function rename(){
var x='renamedvalue';
}
</script>
<input type="button" onclick="return rename();">
页面2.php
<script>
var x ='somevalue';
</script>
我必须在第1页上更改此变量onclick按钮事件的值。
答案 0 :(得分:3)
由于你将2.php包含在1.php中,你最终会得到一个页面。您可以创建一个全局Javascript值,就像您在2.php中所做的那样,如下所示:
<script>
var x ='somevalue';
</script>
1.php中的问题在于:
var x='renamedvalue';
使用此代码段,您将在重命名函数中重新定义名为x的变量。要使用全局变量x,请更改上面的行以排除“var”(在rename()中重新声明另一个本地值“x”):
x='renamedvalue';
答案 1 :(得分:1)
如果你想在JS和PHP之间传递变量,它可能更容易使用表格:
<script>
function rename(){
var x='renamedvalue';
document.getElementById("x").value = x;
}
</script>
<form action="2.php" method="post">
<input type="hidden" value="" id="x" name="x">
<input type="button" onclick="return rename();">
</form>
使page2.php
<script>
var x ='<?php print $_POST["x"] ?>';
</script>
您需要执行一些输入清理,但您明白了
答案 2 :(得分:0)
在js函数之外定义变量使其成为全局变量并允许更改onclick事件的值。
<?php
include '2.php'
?>
<script>
var x = ''; //global variable
function rename(){
x='renamedvalue';
}
</script>
<input type="button" onclick="return rename();">
答案 3 :(得分:0)
您必须使用全局变量x
写x='renamedvalue'
而不是var x='renamedvalue'