无法调用php

时间:2016-01-12 05:44:42

标签: javascript php jquery html

我在下面有这个脚本并且它的工作正常。即使使用外部JavaScript标记,我也可以直接加载.php文件。

的index.html

<div id="content"></div>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="test.js"></script>

test.js

$(document).ready(function() {
    $('#content').load('content/index.php')
});

/content/index.php

<?php
    require_once("geoip.inc");
    $gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);
    $country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
    geoip_close($gi);

    if ($country_code == 'RO' ||
        $country_code == 'DO' ||
        $country_code == 'PK' ||
        $country_code == 'MA' ||
        $country_code == 'PE' ||
        $country_code == 'IR' ||
        $country_code == 'DZ' ||
        $country_code == 'RU' ||
        $country_code == 'EG') {
        echo 'country not supported';
    } else {
        echo 'supported';
    }
?>

我的问题是:

当我尝试

echo 'supported';

它运作良好。

但是当我试图回应

<SCRIPT SRC="http://externalsite.com/ads/sample.js" TYPE="text/javascript"></SCRIPT>

脚本标记未显示。 我需要在.js文件中加载.php文件

3 个答案:

答案 0 :(得分:0)

试试这个..

echo "<SCRIPT SRC='http://externalsite.com/ads/sample.js' TYPE='text/javascript'></SCRIPT>";

答案 1 :(得分:0)

当您尝试以下内容时:

<?php
echo 'test';
echo '<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>';
die;
?>

输出将是:

test

源代码看起来像

test<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>

<强>更新

您正在将整个HTML页面加载到div中,包括html,head和body标记。如果您执行加载并在加载的HTML中只有开始脚本,关闭脚本和JavaScript代码会发生什么?

这是驱动程序页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>jQuery Load of Script</title>
        <script type="text/javascript" src="http://www.google.com/jsapi"></script>
        <script type="text/javascript">
            google.load("jquery", "1.3.2");
        </script>
        <script type="text/javascript">
            $(document).ready(function(){
                $("#myButton").click(function() {
                    $("#myDiv").load("trackingCode.html");
                });
             });
         </script>
    </head>
    <body>
        <button id="myButton">Click Me</button>
        <div id="myDiv"></div>
    </body>
</html>

以下是trackingCode.html的内容:

<script type="text/javascript">
    alert("Outside the jQuery ready");
    $(function() {
        alert("Inside the jQuery ready");
    });
 </script>

这适用于Safari 4。

更新:添加了DOCTYPE和html命名空间以匹配我的测试环境中的代码。使用Firefox 3.6.13进行测试,示例代码可以正常工作。

有关详情,请参阅this link

答案 2 :(得分:0)

Echo标签不会显示在页面上,而是包含在HTML中。使用浏览器检查器查看HTML中是否存在脚本标记。

如果您想在页面上显示标签,请使用htmlspecialchars()

echo htmlspecialchars("<SCRIPT SRC='http://externalsite.com/ads/sample.js' TYPE='text/javascript'></SCRIPT>");

参考http://php.net/manual/en/function.htmlspecialchars.php