我有一个类似
的网址 https://go.feeds4.com/merchants/?pid=1676&mid=4261
如何将其作为函数参数传递。我试图传递该值,但无法在函数中获取任何内容。
查询参数中的&
是否会导致问题?
HTML
<a href="javascript:;"
onclick=rendernewmodal(<?php echo '"'.htmlspecialchars_decode($merchant->affiliate_link).'"'; ?>);>
<i class="fa fa-angle-right" aria-hidden="true"></i>
</a>
在View Page Source上,我可以看到以下内容
<a href="javascript:;"
onclick=rendernewmodal("https://go.feeds4.com/merchants/?pid=1676&mid=4261");>
JS
function rendernewmodal(url) {
alert (url);
}
我没有看到任何显示网址价值的提醒。请帮忙。
答案 0 :(得分:1)
你有两个问题:
将字符串拼接在一起以制作JavaScript文字容易出错且非常混乱,因此您也应该避免手动执行此操作。
所以:
<?php
# Get the URL
$url = $merchant->affiliate_link;
# Put quotes around it and escape special characters for JS
$url_as_js_string_literal = json_encode($url);
# Put it in the rest of the JS
$js_function_call = "rendernewmodal($url_as_js_string_literal);";
# Escape special characters for HTML
$html_safe_js = htmlspecialchars($js_function_call);
?>
onclick="<?php echo $html_safe_js; ?>)">