从AJAX php文件中调用javascript函数是不行的

时间:2011-12-07 21:25:51

标签: php ajax

解决了!我只使用javascript来完成任务。现在它从php中读取文本并使用坐标。

        var texto = HttpReq.responseText;
        var lats,lons;
        var pos = texto.search(' ');
        lats = texto.substring(0,pos-1);
        lons = texto.substring(pos+1);

谢谢大家!你真棒!


我的网站有一个主页面,在用户选择一个城市后,我想在谷歌地图上显示它。城市的坐标在一个表中,所以我在一个单独的.php文件中使用php,通过AJAX访问。在单独的.php中,我想从主页面调用JS函数将点添加到地图(JS地图对象在主页面上,我也尝试将所有JS放在.js文件中,但是该函数仍然没有被调用(我使用FireBug断点它,但函数永远不会被调用)。

AJAX的GET结果如下:

Latitude: -21.15361<BR>Longitude: -41.567501<BR><script src="functions.js" type="text/javascript">addPoint(-21.15361,-41.567501);</script>

屏幕上显示纬度和经度,但未调用方法addPoint。我在这里错过了一些愚蠢的东西吗?提前谢谢。

- 编辑 - 好的,这是我正在尝试做的事情(这是在getcoords.php里面,这个文件名为thru ajax):

$stmt = $dbh->prepare("select id_mun,lat,lon from municipio where id_mun = '".$_GET['mun']."'");
if ($stmt->execute()) {
    echo '<script src="functions.js" type="text/javascript"></script>';
    while ($row = $stmt->fetch(PDO::FETCH_BOTH)) {
        echo "Latitude: $row[1]<BR>";
        echo "Longitude: $row[2]<BR>";
        echo '<script type="text/javascript">';
        echo 'alert("testando");';
        echo "addPoint($row[1],$row[2]);";
        echo "</script>";
    }
}

从我的div进入innerHtml的结果(并且没有执行):

<script src="functions.js" type="text/javascript"></script>Latitude: -15.779722<BR>Longitude: -47.929722<BR><script type="text/javascript">alert("testando");addPoint(-15.779722,-47.929722);</script>

再次感谢。

2 个答案:

答案 0 :(得分:1)

如果<script></script>属性存在,则src内的任何代码都不会被执行。您需要两个脚本块而不是一个:

<script src="functions.js" type="text/javascript"></script><script type="text/javascript">addPoint(-21.15361,-41.567501);</script>

希望有所帮助!

答案 1 :(得分:0)

&lt; script&gt;中的内容仅在页面加载时执行。您需要从AJAX响应处理程序中调用代码,而不是将其注入页面。