Generating JavaScript with PHP


Generating JavaScript with PHP

我在"PHP和HTML"手册中找到了一个关于PHP.net的教程,其中有一个例子,用PHP生成JavaScript。

我正在自己尝试一个简单的演示版本,以学习如何做到这一点,以便我以后可以尝试更复杂的东西。现在,我只是试图在PHP中声明一个字符串变量(JPG文件的地址),然后通过JavaScript(在PHP脚本中创建)将IMG元素的src更改为这个新地址。

有人建议使用JSON,我有一点经验,但只有在PHP文件中使用脚本发布到文本文件。我不确定我是否可以使用GET请求或其他东西,我真的没有线索。我只是没想到会这么复杂。

这是我正在尝试做这件事的页面的链接。

正如你所看到的,我实际上一直在尝试做相反的在PHP中创建JavaScript,相反,我试图将PHP嵌入到JavaScript中,这是有人最初向我建议的,这不起作用。这就是为什么它是这样的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
    <?php

    $srcmsg = 'http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg';
    ?>
    <script type="text/javascript">
    //<![CDATA[
    //
    var msr = "<?php echo $srcmsg; ?>";
    window.onload = document.getElementsByTagName('img').src= msr;
    //]]>
    </script>
    </head>
    <body><img src="#" alt="Picture of the world" height="42" width="42" />
    </body>
    </html>

解决方案:这是由Orangepill和Fred....发现的结果发现,其中一个大问题是我的服务器无法解析html文件中的脚本,所以我不得不将其放在PHP文件中。然后在解释XML声明中的short_open标记时出现了一个问题。下面是它如何工作的:记住,这是一个。php文件,而不是。htm

<?php echo "<", 'xml version="1.0" encoding="UTF-8" standalone="no" ?'; ">'n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo</title>
<script type="text/javascript">
//<![CDATA[
//
window.onload = function (){
var msr = '<?php $srcmsg = "http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg"; echo $srcmsg; ?>';
var x = document.getElementsByTagName('img')[0];
x.src = msr;
}
//]]>
</script>
</head>
<body><img src="#" alt="Picture of the world" height="42" width="42" />
</body>
</html>

getElementsByTagName返回一个NodeList(一个类似数组的对象)所以你必须做

window.onload = document.getElementsByTagName('img')[0].src= msr;

做第一个图像。

<?php
$srcmsg = 'http://www.newyorker.com/online/blogs/photobooth/NASAEarth-01.jpg';
echo<<<_HTML
<script type='text/javascript'>
window.onload = document.getElementsByTagName('img').src= $srcmsg;
</script>
_HTML;
?>