2011-10-23 81 views
0

我有文件:file.php混合的JavaScript和PHP

在这个文件是:

<script type="text/javascript"> 
//.... 
var sumJS = 10; 

<?php $sumPHP = sumJS ?> 

</script> 
<?php echo "Sum = " . $sumPHP ?> 

我怎么能分配sumJS为$ sumPHP?

,如果我想使这反过来然后我做:

$sumPHP = 10; 
<script type="text/javascript"> 
var sumJS; 
sumJS = <?php echo $sumPHP ?>; 
alert(sumJS); 
</script> 

,但我怎样才能使这个对我的问题吗?

+0

是你的js服务器端? – mddw

+1

如果我理解你的问题,请参阅http://stackoverflow.com/questions/4716177/pass-a-js-variable-to-a-php-variable –

回答

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> 
1

你只是缺少标签

<?php 
$sumPHP = 10; 
?> 
<script type="text/javascript"> 
var sumJS; 
sumJS = <?php echo $sumPHP ?>; 
alert(sumJS); 
</script> 

demo

+3

你错过了这一点。他的问题是关于做相反的事情: >我如何为$ sumPHP指定sumJS? – Nasreddine

0

遗憾的是,此刻我没有写一个例子的时间。但我相信这个想法会起作用。也许这里有人可以做一个快速测试。

只需用id =“uniqueBufferForCommunicatingBetweenPHPandJS”和style =“display:none”创建一个带有唯一标识的隐藏元素,例如 。 然后,代码的JS部分,通过使用

的document.getElementById( “uniqueBufferForCommunicationBetweenPHPandJS”)将结果写入到该跨度的innerHTML = XXX。

你甚至可以用JSON的形式写XXX。

之后,您可以使用一些在PHP一样

$ bufferspan = $ dom->的getElementById( 'uniqueBufferForCommunicationBetweenPHPandJS');

得到的跨度,并阅读其内容,可能是通过使用

$ avariable = $ dom-> ownerDocument-> saveHTML($ avariable);

然后解释存储在$ avariable中的结果。我不完全确定最后一个PHP代码。

0

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变量,反之亦然 上面显示,你可以通过简单地写出使用echo在分配中分配在PHP,反之亦然值的java在java中的php和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 ?>&nbsp; </p>