我有一个名为 file.php
的文件 此文件中包含的是以下代码:
<script type="text/javascript">
//....
var sumJS = 10;
<?php $sumPHP = sumJS ?>
</script>
<?php echo "Sum = " . $sumPHP ?>
如何为$ sumPHP分配sumJS?
如果我想反过来这样做,那么我会写:
$sumPHP = 10;
<script type="text/javascript">
var sumJS;
sumJS = <?php echo $sumPHP ?>;
alert(sumJS);
</script>
但我怎样才能为我的问题重新制作呢?
答案 0 :(得分:2)
Javascript可以更改PHP的变量,反之亦然。
这是一个例子。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<?php $aphp=1 ?>
<script "text/javascript">document.write("<?php $aphp=2 ?>")
var ajava=1;</script>
<?php echo "aphp= $aphp"; echo "<br>";
echo "<script \"text/javascript\">ajava=2;</script>"
?>
<script "text/javascript">document.write("ajava= "); document.write(ajava)</script>
</body>
</html>
如果我想将php变量分配给java变量,反之亦然,该怎么办? 上面显示了你可以在php中为java赋值,反之亦然,只需在php中使用echo和在java中使用document.write编写赋值。这就是你分配价值的方式。
在php和java之间混合实际变量并不复杂。你所做的是用你需要的语言编写一个赋值,以获取变量的值,并将其赋值给另一种语言的变量。这是一个例子。
将php分配给java
<?php echo "<script type='text/javascript'>javasum=$phpsum</script>" ?>
将java分配给php可以通过两种方式完成
<script type='text/javascript'>var str="<?php $phpsum=";
str=str+javasum; str=str+" ?>";
document.write(str);
</script>
或更方便
javasum=<?php echo $phpsum ?>;
混合使用php和javascript来执行除变量赋值之外的操作
Javascript也可以在phpcode中混合在phpcode中执行javascript函数。假设您只想在PHP代码中满足条件时使用javascript来突出显示文本。但要做到这一点,你需要回应javascript代码部分。还可以使用转义字符“\”在echo命令中包含引号。以下是此
的示例在开始之前,请确保php内容类型为html。在Dreamweaver站点编辑器软件中,会自动包含执行此操作的标题。
<p><span id="htext">htext</span></p>
<?php
$a=5;
echo "<h3> hello world</h3>";
if ($a==5) {
echo "<script type=\"text/javascript\">";
echo "document.getElementById(\"htext\").style=\"background-color:yellow\"";
echo "</script>";
}
?>
<p>is a=5</p>
<p><?php echo $a ?> </p>
答案 1 :(得分:1)
你只是缺少标签
<?php
$sumPHP = 10;
?>
<script type="text/javascript">
var sumJS;
sumJS = <?php echo $sumPHP ?>;
alert(sumJS);
</script>
答案 2 :(得分:1)
$ sumPHP是服务器端值,将在服务器上进行评估。然后,服务器生成页面内容并将其发送到客户端。然后浏览器接收页面内容并评估客户端值sumJS。
所以你永远不能为$ sumPHP分配sumJS,因为$ sumPHP是在sumJS之前计算的。
但是可以这样做来显示页面:
<?php echo "Sum = "?><script type="text/javascript">document.write(sumJS);</script>
或者更确切地说
<script type="text/javascript">document.write('Sum = ' + sumJS);</script>
答案 3 :(得分:0)
很抱歉,目前我没有时间写一个例子。但我相信这个想法会起作用。也许这里有人可以做快速测试。
只需创建一个具有唯一ID的隐藏元素,例如a span = id =“uniqueBufferForCommunicatingBetweenPHPandJS”和style =“display:none”。 然后,使用代码的JS部分,使用
将结果写入此范围document.getElementById(“uniqueBufferForCommunicationBetweenPHPandJS”)。innerHTML = XXX;
您甚至可以以JSON的形式编写XXX。
之后,你可以在PHP中使用像
这样的东西$ bufferspan = $ dom-&gt; getElementById('uniqueBufferForCommunicationBetweenPHPandJS');
获取范围,并阅读其内容,可能是使用
$ avariable = $ dom-&gt; ownerDocument-&gt; saveHTML($ avariable);
然后解释存储在$ avariable中的结果。我不完全确定最后的PHP代码。