下面是一段完整的php文件里的代码,但是为什么取不到$a的内容?
<script language="javascript">
var globalvar=" <?php echo $a?>"; 
var var1 = 'abc';
alert(globalvar);
alert(var1);
<?php 
echo "alert('$a');";
?>
function backOnClick(num)
{
document.getElementById("page").value ='"+ (parseInt(globalvar)+1)+"'; 
}</script>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border-collapse:collapse">
<tr>
<?php $a=9;?>
<select name="NianDu" id="NianDu" ></select>
</tr>
<tr height="25">
<td>
<table>
<form name="pageForm" id="pageForm" action="" method="post">
<tr height="25">
<td width="30" align="center"  onClick="backOnClick();" >
<input type='text' name='page' id='page' />
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>

解决方案 »

  1.   

    服务器端先把$a赋值后,然后发送到客户浏览器里解析,不是这个顺序吗?
    javascript部分和<?php $a=9;?>哪个先运行?
      

  2.   

    服务器先php解析$a,再把值送到javascript。顺序确实是这个顺序,但是因为var globalvar=" <?php echo $a?>";是在<?php $a=9;?>前面,当然就取不到值了。
    可以把javascript部分放在</table>后面试试
      

  3.   

    <?php 
    echo "alert('$a');";
    ?>

    <?php
             echo "<script>alert('$a')</script>";
    ?>