事实证明,我需要将loginName作为第一个URL参数传递,ID作为第二个传递,但下面的JavaScript代码仍无法正常工作。
return "<a target='tab' data-tab-name='#RequestDetails' data-tab-index='2' href='viewDetails.php?loginName="
+ <?php echo $user; ?> + "&ID=" + oObj.aData["ID"] + "'> " + oObj.aData["ID"] + " </a>";
它返回了我之前遇到的同样错误。
我们希望URL参数的值与此类似:
http://viewDetails.php?loginName="john.doe&ID=2984
有什么想法吗?
答案 0 :(得分:4)
我猜这是一个JS return
,这意味着:
+ <?php echo $user; ?> +
会产生类似的东西:
var foo = "...." + name_of_user + "....";
并被视为未定义的变量。你可能想要
var foo = "..." + <?php echo json_encode($user); ?> + "...";
会产生
var foo = "..." + "name_of_user" + "...";
并被视为常规字符串。
答案 1 :(得分:2)
除非您的$name
是一个数字,否则您输出的JavaScript认为是变量名称 - 查看渲染结果始终很重要:
return "<a target='tab' data-tab-name='#RequestDetails' data-tab-index='2' href='viewDetails.php?loginName="
+ john.doe + "&ID=" + oObj.aData["ID"] + "'> " + oObj.aData["ID"] + " </a>";
// ^^^^^^^^
看到了吗? JavaScript正在寻找一个名为john
的对象,其属性为doe
。
要将PHP变量传递给JavaScript,请使用json_encode
,如下所示:
return "<a target='tab' data-tab-name='#RequestDetails' data-tab-index='2' href='viewDetails.php?loginName="
+ <?php echo json_encode($user); ?> + "&ID=" + oObj.aData["ID"] + "'> " + oObj.aData["ID"] + " </a>";
这应该可行!