PHP生成JavaScript onClick,带有php数组,引用问题

时间:2011-08-09 07:08:58

标签: php javascript arrays javascript-events

echo '<a onClick="articleDeleteConfirm("'.
      $row["title_$lang"].'","'.$_GET["editPage"]).'">';

主要问题是:$ row [“title_ $ lang”],我必须在里面使用$ lang变量。 “而且'还不够。

2 个答案:

答案 0 :(得分:0)

我也有同样的问题,我不确切知道为什么但是无论我做了什么都有语法错误,所以我尝试了这个并得到了答案。

问题是您使用双引号打开onClick,然后再次使用另一个双引号打开字符串。

使用此功能,您将得到答案。

echo '<a onClick="articleDeleteConfirm('.char(39).$row["title_$lang"].char(39).','.char(39).$_GET["editPage"]).char(39).'>';

答案 1 :(得分:0)

您描述的问题实际上与您的PHP变量无关,这些变量都按预期输出。问题是你需要逃避"内的<a>而你错放了)

你的原件会输出:

<a onClick="articleDeleteConfirm("value1","value2">

这不是有效的HTML(即使荧光笔不喜欢它)。现在,请注意下面的\(并且将paren移动到字符串中)。

echo '<a onClick="articleDeleteConfirm(\''
     .$row["title_".$lang."].'\',\''.$_GET["editPage"].'\')">';

转义版本输出:

<a onClick="articleDeleteConfirm('value1','value2')">

它使用双引号内的单引号来提供易于阅读(和有效)的html。现在,您的代码还有另一个问题。

每次向浏览器输出$_REQUEST变量时,都会冒一些名为cross-site-scripting的风险。有人可以将JavaScript放入$_GET["editPage"],它会闻起来很糟糕。避免它的简单方法?使用htmlentities($_GET["editPage"])