2011-03-04 30 views
0

当我尝试从PHP中的功能并不回声出内回声脚本在功能上不会回显

<script type='text/javascript'> 
function rotate_$num(number) { 
    num = number%$i; 
    $('.$num').fadeOut('normal'); 
    $('#'+(num+1)).fadeIn('normal'); 
    number++; 
    setTimeout('rotate_$num('+number+')',300); 
} 
</script> 

,但是当我改变<script><div>它的工作原理。此外,它的工作原理时,回声只是在一个PHP文件中没有别的,但在它的回声,它的作品。

这里就是整个功能:

function rename_name($name) { 
    return str_replace(' ', '', $name); 
} 
function pane($result) { 
    if($result['title']) {$title = ': '.$result['title'];} 
    $name = rename_name($result[name]); 
     echo "<div class='pane $name'> 
      <h2>$result[name]$title</h2>"; 
     if (is_array($result['data'])) { 
      $num = rand(0, 9999); 
      foreach($result['data'] as $option) { 

     $i++; 

     if($i == 1) $display = 'block'; else $display = 'none'; 
       echo "<div id='$num$i' class='$num' style='display: $display;'><h3>$option[data]<span  class='whats'>$option[kind]</span></h3></div>"; 

      } 
      //The below will echo when script is changed to div, why should it matter? 
      echo "<script type='text/javascript'> function rotate_$num(number) { num = number%$i; 

        $('.$num').fadeOut('normal'); 
        $('#'+(num+1)).fadeIn('normal'); 

        number++; 

        setTimeout('rotate_$num('+number+')',300); 
       } 
      </script>"; 
      //The above will echo when script is changed to div, why should it matter? 
     } 
     else { 
      echo "<h3>".$result['data']."<span class='whats'>$result[kind]</span></h3>"; 
     } 
    echo "</div>"; 
} 

这里是传递给它

Array 
(
    [name] => Mint 
    [type] => 0 
    [data] => Array 
     (
      [0] => Array 
       (
        [data] => 67 
        [kind] => hits today 
       ) 

      [1] => Array 
       (
        [data] => 24 
        [kind] => unique hits today 
       ) 

      [2] => Array 
       (
        [data] => 158351 
        [kind] => hits total 
       ) 

      [3] => Array 
       (
        [data] => 17826 
        [kind] => unique hits total 
       ) 

     ) 

) 
+2

嘿,伙计,这是星期五。星期五不要问难题。人们想要玩得开心! jk – user194076 2011-03-04 22:06:35

+0

它可能是一个浏览器插件/防病毒防止JavaScript写'

0

的$结果数组我不知道这是否是问题,但我尽量不让字符串跨越多行,就像您使用echo语句完成的那样。尝试使用heredoc符号,就像这样。

$javascript = <<EOT 
<script type='text/javascript'> function rotate_$num(number) { num = number%$i; 
    $('.$num').fadeOut('normal'); 
    $('#'+(num+1)).fadeIn('normal'); 
    number++; 
    setTimeout('rotate_$num('+number+')',300); 
} 
</script> 
EOT; 
    echo $javascript; 

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc