如题,代码如下:(红色部分退不出来)<script  language="JavaScript" type="text/JavaScript">
function curnid (id){ var name="";
var f="";

// var folderspec="hello"+id; alert("hello");

<?php

//*****************************************************************// 
//函数名:myreaddir($dir) 
//作用:读取目录所有的文件名 
//参数:$dir   目录地址 
//返回值:文件名数组 
//*****************************************************************// 
function myreaddir1($dir1)   

$handle1=opendir($dir1); 
$i=0; 
while($file1=readdir($handle1))   { 
if((strstr($file1, ".")==FALSE) && (strstr($file1, "..")==FALSE))  

?>f+="<? echo $file1;?>";<?
$list1[$i]=$file1; 
$i=$i+1; 


closedir($handle1); 
sort($list1);
return $list1; 


$file_c=file("/etc/control.conf/node.conf");
foreach($file_c as $line)
{
list($n_id,$n_name)=sscanf($line,"%u %s");
// $nodes[$n_id]=$n_name;
?>
nid=<?php echo $n_id;?>;

if(id==nid){
<? break; ?>
alert("==");
// break;
}

<?php
}

$dir="/home/control/data/".$n_name."/sys_log/";
if(!is_dir($dir))
{
?>alert("目录不存在!"); window.location='delete_syslog.php';<?
}
$file_list=myreaddir1($dir);
$fnum=count($file_list);
?>

fnum1=<?php echo $fnum;?>;


// var folderspec="hello"+nid;
var folderspec="hello"+id+nid+"<?php echo $dir;?>"; alert(folderspec);
// document.getElementById("num").value=1;}   
 
</script>

解决方案 »

  1.   

    JS 页面脚本程序
    PHP 服务器端 程序。
    两者不同
      

  2.   

    php是服务端运行的, 
    js是客户端运行的..它们不在一个时空里...
      

  3.   

    我知道不同,但是js是可以嵌套php的,我这儿主要是嵌套里面再嵌套,都有点乱了,但是除了foreach循环退不出来,其他都是对的...
      

  4.   

    楼主理解有问题。服务器端只认识PHP代码,它“看到”的只是PHP代码而已,只负责运行PHP代码,以下面这个片段为例:
    nid=<?php echo $n_id;?>;
    if(id==nid){
    <? break; ?>
    alert("==");

    服务器只能“看到”下面两行代码:
    echo $n_id;
    break;
      

  5.   

    从代码来看,foreach循环只会执行一次就break退出了(JS的if条件语句完全不会对PHP代码的执行产生任何影响)。没有退出循环的原因很可能是你的php配置文件中没有开启短标签支持选项(short_open_tag),因为<? break; ?>这行代码使用了短标签,php模块不能识别出这是一行php代码。