本例是PHP和javascript交互的例子,php中的值赋给js变量中,前提是这个php变量必须有值才行,就算是假分支中。比如php中的$flags在本例中为true,如果js中false语句写成:$title_1.innerHTML = "<?php echo $title;?>";就会出错,因为$title在php中被赋值为数组尽管在php的flags=="false";$title是一个字符串,情况是$title是数组,而数组在字符串中也是不能直接显示的。 <div class="codetitle"><a style="CURSOR: pointer" data="63920" class="copybut" id="copybut63920" onclick="doCopy('code63920')"> 代码如下:<div class="codebody" id="code63920"> <?php $string = "天上and地下"; $flags = ""; if(strpbrk($string,"and")!=false){ $title = explode("and",$string); $title_1 = $title[0]; $title_2 = $title[1]; $flags = "true"; } else{ $title = $string; $flags = "false"; } ?>
—>html <div class="codetitle"><a style="CURSOR: pointer" data="55634" class="copybut" id="copybut55634" onclick="doCopy('code55634')"> 代码如下:<div class="codebody" id="code55634">
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<script type="text/javascript"> var display = function(){ var flags = "<?php echo $flags; ?>"; var $title_1 = document.getElementById("title_1"); var $title_2 = document.getElementById("title_2"); if(flags=="true"){ $title_1.innerHTML = "<?php echo $title[0];?>"; $title_2.innerHTML = "<?php echo $title[1];?>"; return; } if(flags=="false"){ $title_1.innerHTML = "<?php echo $string;?>"; //虽然这是一个假分支,照理这个$string可以替换成$title,但是虽然只是执行上边的真分支,但是编译的时候 //这个假分支也是必须编译的,所以echo $title是错误的,因为$title是数组,只能是$string; } }
<body onload="display()"> <div id="title_1"> <div id="title_2">
|