你能在PHP中嵌套JavaScript吗?

时间:2012-09-08 03:03:09

标签: php javascript

我找到了这个广告旋转脚本,我想在下面嵌入JavaScript。我得到了错误,我将如何实现这一目标。

<?php 
// random number 1 - 100 $result_random = rand(1, 100); 

// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 
// if result less than or equal 90, display ad2 (20%) 
else if($result_random <= 90){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>";
} 
// if result less than or equal 100, display ad3 (10%)
else { 
 echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 

3 个答案:

答案 0 :(得分:1)

您可以使用PHP将脚本源输出到用户的浏览器,但您不能在PHP应用程序中包含和运行Javascript。

您的输出:

<script type='text/javascript' src='http://myads.com'></script>

是正确的行为。然后,客户端将尝试包含该脚本源。

如果你要进行有条件的包含,你会想要在页面的头标记之间回应:

<html>
  <head>
    <?php
      // process, echo out a <script />
    ?>
  </head>
  <body>...</body>
</html>

答案 1 :(得分:1)

<强>问题/原因:

因为这行

// random number 1 - 100 $result_random = rand(1, 100);

已被注释掉,

这一行

if($result_random <= 70){ 

和这一行

else if($result_random <= 90){ 

会在Undefined Variable $result_random in line X

的行中引起错误

Your Code @ Codepad.org/saPRtKPU

(更新:好的,您没有收到任何错误,但由于$result_random未定义,因此只有最后else(ads3)案例被执行每次。任何未定义的变量都包含NULLhttp://codepad.org/vVHMrWkl

<强>解决方案:

更改此行

// random number 1 - 100 $result_random = rand(1, 100);

// random number 1 - 100
$result_random = rand(1, 100);

即。在$result_random....之前插入换行符/回车符(在Windows中输入

它应该可以解决问题,但如果现在,请发布您收到的确切错误消息。

BTW,您脚本的所有三个SRC都是相同的,即http://myads.com/。我想这只是一个例子,但即便如此,在测试时,我们也不知道我们是否得到了真正的随机结果。我已将ad1ad2ad3附加到相应的网址。

完整代码:

<?php 
// random number 1 - 100
$result_random = rand(1, 100); 

// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com/ad1'></script>"; 
} // if result less than or equal 90, display ad2 (20%) 
    else if($result_random <= 90){ 
      echo "<script type='text/javascript' src='http://myads.com/ad2'></script>";
    }// if result less than or equal 100, display ad3 (10%)
        else { 
             echo "<script type='text/javascript' src='http://myads.com/ad3'></script>"; 
        } 

//Just for testing
echo "\r\nRandom Number is: ".$result_random;

Live Demo @ Codepad.org http://codepad.org/oymuBk8w

答案 2 :(得分:-1)

您需要将此代码放在文件的部分中。只有这样它才会起作用

它不会在Php内部进行wq。

Js文件只有在html中包含它们或使用动态代码(php)时才会起作用.html