将混合字符串和int参数传递给javascript

passing mixed string and int parameters to javascript

本文关键字:参数传递 javascript int 混合 字符串      更新时间:2024-05-27

我环顾四周,似乎找不到一个有效的解决方案,所以下面是需求。

我正在构建一个系统,该系统从母版页获取数据,并将其加载到模式样式窗口中,以便快速处理数据。我有一个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>