我环顾四周,似乎找不到一个有效的解决方案,所以下面是需求。
我正在构建一个系统,该系统从母版页获取数据,并将其加载到模式样式窗口中,以便快速处理数据。我有一个javascript函数传递4个状态参数,其中3个参数始终是整数,其中一个可以是整数或字符串。
如果所有4个参数都是整数,则该函数有效,但在传递字符串时失败。
function passJob(jobid,equipid,status,location) {
var a = document.getElementById('jobnumber');
var b = document.getElementById('equipid');
var c = document.getElementById('status');
var d = document.getElementById('location');
a.value = jobid;
b.value = equipid;
c.value = status;
d.value = location;
}
PHP
<a href='#' onclick='passJob($sr,$eid,$ss,$sl);'>Modify Job</a>
$sr、$ss和$sl将始终是数字,$eid将是整数,或者是以M开头的字符串,后面有一个数字。
我试着在变量周围、函数内部等添加引号,但没有成功:(
如果你不知道它们是什么,你需要作为字符串传递-也要确保你没有嵌套相同类型的引号:
onclick='passJob($sr,"$eid",$ss,$sl);'
只需将其用引号括起来。这在任何时候都像字符串一样对待它,以避免任何潜在的JavaScript解析错误。
<a href="#" onclick="passJob($sr, '$eid', $ss, $sl);">Modify Job</a>
这是因为您没有正确地用Javascript表示法对变量进行编码。尝试:
echo "<a href='#' onclick='passJob(".json_encode($sr).",".json_encode($eid).",".json_encode($ss).",".json_encode($sl).");'>Modify Job</a>";
喜欢下面的
<a href="#" onclick="passJob($sr, '$eid', $ss, $sl);">Modify Job</a>