繁体   English   中英

将参数从php传递到同一页面上的javascript

[英]passing parameters from php to javascript on same page

我有以下代码,其中我试图使用PHP从RSS提要中获取xml元素“ point”的值。 当我使用“ echo”显示点的值时,它为我提供了正确的数据。 但是,当我将相同的参数传递给javascript函数时,它会非常随机地调用该函数。 javascript函数中的警报为我提供了每次迭代中2或3点值的点总和。 我该如何解决这个问题?

<!DOCTYPE html>
<html>
<head>
    <title>Natural Disasters</title>

    <script type="text/javascript" src="http://maps.google.com/maps/api/js? sensor=false&amp;libraries=places"></script>
    <script type="text/javascript">
        var i=0;
        function getPoint(point) {

            alert("Value of i : "+i+" Value of point : "+point);
            ++i;
        }
    </script>
    <script>
        function showRSS(str) {
            if (str.length === 0) {
                document.getElementById("rssOutput").innerHTML = "";
                return;
            }
            if (window.XMLHttpRequest) {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            } else {  // code for IE6, IE5
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function () {
                if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
                    document.getElementById("rssOutput").innerHTML = xmlhttp.responseText;
                }
            };
            xmlhttp.open("GET", "getrss.php?q=" + str, true);
            xmlhttp.send();
        }

    </script>
</head>

<body>
    <?php
    $xml2 = ("http://www.volcano.si.edu/news/WeeklyVolcanoRSS.xml?");
    $xmlDoc2 = new DOMDocument();
    $xmlDoc2->load($xml2);
    $x2 = $xmlDoc2->getElementsByTagName('item');
    $i2 = 0;

    foreach ($x2 as $y) {

        $geo_rss = $y->getElementsByTagNameNS("http://www.georss.org/georss", 'point');
        $title = $y->getElementsByTagName('title')->item(0)->nodeValue;
        $point = $geo_rss->item(0)->nodeValue;
        echo ("<h3>" . $title . "</h3>" );
        echo ($point);

        echo '<script type="text/javascript">'
        , 'getPoint(' . $point . ');'
        , '</script>'
        ;
        ++$i2;
    }
    ?>
</body>
</html>

PS:我对另一组参数遵循了相同的步骤,因此效果很好。 我不知道为什么这个不起作用。

更改您的php代码以编写脚本,如下所示:

echo '<script type="text/javascript"> getPoint("' . $point . '");</script>';

您只需要将$ point换成双引号即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM