Javascript 使用特定变量从PHP echo调用JS函数时出现问题
我有一个JS函数,可以将带有值的键添加到当前URL。下面有两个几乎相同的链接,唯一的区别是传递给JS函数的变量。一个链接通过$month,另一个通过$event\u类别。出于某种原因,当传递$event_category时,JS函数甚至没有被调用。有人知道我做错了什么吗 您必须向右滚动才能看到差异所在Javascript 使用特定变量从PHP echo调用JS函数时出现问题,javascript,php,Javascript,Php,我有一个JS函数,可以将带有值的键添加到当前URL。下面有两个几乎相同的链接,唯一的区别是传递给JS函数的变量。一个链接通过$month,另一个通过$event\u类别。出于某种原因,当传递$event_category时,JS函数甚至没有被调用。有人知道我做错了什么吗 您必须向右滚动才能看到差异所在 $month = 1; $event_category = (string) ($eventCategories[$k]["event_category"]); echo
$month = 1;
$event_category = (string) ($eventCategories[$k]["event_category"]);
echo gettype($event_category); // prints "string"
// doesn't work?
echo '<div class="month selected"><a href="javascript:void(0);" onclick="javascript:insertParam('. "'event_category'" .', '. $event_category .');" class="button" role="button">
<image width="100" height="60" src="images/'. $images_list[$eventCategories[$k]["event_category"]].'"></a></div>';
// works
echo '<div class="month selected"><a href="javascript:void(0);" onclick="javascript:insertParam('. "'event_category'" .', '. $month .');" class="button" role="button">
<image width="100" height="60" src="images/'. $images_list[$eventCategories[$k]["event_category"]].'"></a></div>';
$month=1;
$event_category=(字符串)($eventCategories[$k][“event_category”]);
echo gettype($event_category);//打印“字符串”
//不起作用?
回声';
//工作
回声';
您应该在$event_类别周围加引号,否则它将被javascript解释为变量。所以,转换
. $event_category .
到
您应该在$event_类别周围加引号,否则它将被javascript解释为变量。所以,转换
. $event_category .
到
这是一个重大的XSS风险,您真的不应该这样做。在将java脚本函数转储到HTML之前,至少先对所有内容进行清理。我要说的是,您将java脚本函数放在页面上的某个位置,并使用onload侦听器,在加载php时调用该函数。我意识到也许我应该这样做,但我并不担心这一点。我只是想让它工作起来properly@MueyiwaMosesIkomi这样做的目的是创建多个按钮。对于需要传递给JS函数的$event_category,每个都有不同的值。如果可以处理,请使用data属性在按钮中传递数据。您可以通过单击使用java脚本来执行您想要的操作,轻松地获取这些信息。另外,为了安全起见,请确保在将数据发送回服务器之前对其进行清理。这是XSS的主要风险,您确实不应该这样做。在将java脚本函数转储到HTML之前,至少先对所有内容进行清理。我要说的是,您将java脚本函数放在页面上的某个位置,并使用onload侦听器,在加载php时调用该函数。我意识到也许我应该这样做,但我并不担心这一点。我只是想让它工作起来properly@MueyiwaMosesIkomi这样做的目的是创建多个按钮。对于需要传递给JS函数的$event_category,每个都有不同的值。如果可以处理,请使用data属性在按钮中传递数据。您可以通过单击使用java脚本来执行您想要的操作,轻松地获取这些信息。出于安全原因,还应确保在将数据发送回服务器之前对其进行清理