无法在PHP中呈现这一行jQuery

  • 本文关键字:jQuery 一行 PHP php jquery
  • 更新时间 :
  • 英文 :


我试图在PHP中呈现此页面的页面,但是有一个问题,如:

google.maps.event.addListener(marker0, 'click', function() {
    $('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_4631.jpg"></img>');
});

下面的代码不能用:

echo "google.maps.event.addListener(marker " . $i . ", 'click', function() {
     $('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_8302.jpg"></img>');
 });";

我做错了什么(我以为只是省略两个双引号是必需的)

简单明了的回答是:

echo "google.maps.event.addListener(marker".$i.", 'click', function() {n$('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_8302.jpg"></img>');n});";

使用n进行缩进(对于您想要的输出外观),并在$上使用来转义它,以阻止PHP看到未定义的变量。我还把你的"。$ I ."放在一起,并把它直接放在"marker"之后,因为你说代码应该看起来像marker0 marker1 marker2。

看起来像个type-o

我认为问题是marker" . $i . "之间的空间…

改变:

echo "google.maps.event.addListener(marker " . $i . ", 'click', function() {
     $('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_8302.jpg"></img>');
 });";

……

echo "google.maps.event.addListener(marker" . $i . ", 'click', function() {
     $('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_8302.jpg"></img>');
 });";

首先,这里出现语法错误的原因是PHP看到了{$,并期望这意味着在字符串中将有一个嵌入变量。

PHP正在寻找这样的echo "... {$varName} ...";

你用{$(...给出的语法使它混淆。

您可以通过用反斜杠转义美元符号来立即解决这个问题。

然而,由于您没有在字符串中嵌入任何变量(即使您的$i是连接而不是嵌入的),您可能应该使用单引号而不是双引号。这将完全避免美元符号的问题(尽管您当然必须转义字符串中的单引号)。

最后,我能给你的最好的建议是尽量停止在你的PHP中生成这么多JavaScript代码。

最好将上面的代码放入Javascript函数中,然后在PHP代码中生成函数调用。例如:

在你的JS代码中,你应该这样写:

function myMapPointer(markerID) {
    google.maps.event.addListener(markerID, 'click', function(){$('#photo').html('<img src="http://www.pdavis.nl/Ams/IMG_4631.jpg"></img>');});
}

,然后你的PHP代码看起来像这样:

echo "    myMapPointer(marker{$i});n";

我相信你会同意这两方面都更容易阅读。

在我看来,在PHP中嵌入其他代码的最好方法是使用单引号。

把jQuery中的单引号换成双引号。

当然,在img标签中,您将需要单标记和双标记。在本例中,由于我们以单引号开始echo,因此对src属性使用单引号并转义。

echo 'google.maps.event.addListener(marker0, "click", function() {
    $("#photo").html("<img src='http://www.pdavis.nl/Ams/IMG_4631.jpg'></img>");
});'

带单引号的PHP不会尝试插入代码,所以你会直接回显你在这里输入的内容。

最新更新