我试图将字符串和整数传递到同一个函数中,但是我对引号有疑问。我发现错误出在 echo $q->info
部分,我必须在此代码上使用双引号。
有人可以帮我写这个$q->info
,但要获得真正的值(value)而不是$q->info
吗?
到目前为止我的代码是
<td><a href="javascript:add(<?php echo $q->info?>,<?php echo $q->id?>)">Edit</a></td>
和js函数
function add(var,var2)
有人可以帮我解决这个问题吗?
最佳答案
您有一个 PHP 变量。要将其转换为 JavaScript 文字的字符串表示形式,请使用 json_encode。要安全地插入 HTML 属性值,请使用 htmlspecialchars
。
<td><a href="javascript:add(<?php echo htmlspecialchars(json_encode($q->info)); ?>,<?php echo htmlspecialchars(json_encode($q->id)); ?>)">Edit</a></td>
也就是说,编写代码时最好遵循 Progressive Enhancement 的原则。和Unobtrusive JavaScript .
<td>
<form action="edit" method="post">
<input type="hidden" name="info" value="<?php echo htmlspecialchars($q->info); ?>">
<input type="hidden" name="id" value="<?php echo htmlspecialchars($q->id); ?>">
<input type="submit" value="edit">
</form>
</td>
然后是这样的:
document.querySelector('form').addEventListener("submit", function (evt) {
evt.preventDefault();
add(this.elements.info.value, this.elements.id.value);
});
关于JavaScript 将字符串和整数从 PHP 传递到函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26087527/