将php变量传递给javascript函数
问题描述:
我有一个php循环,它会生成几个按钮。每个按钮都会更改特定div的内容,并通过使用ajax请求更新数据库中的某些内容。当按钮被点击时,它会调用一个函数它执行ajax请求。问题是我不能在函数中传递Div id作为参数,如果我将它与一个字符串连接起来。只有当我写$ TickCrossDiv = $ i时它才起作用(仅当使用数字作为Div id它的作用)。将php变量传递给javascript函数
这里是我的代码:
for($i=0;$i<count($PlanningArray);$i++){
$TickCrossDiv = 'tickCrossDiv'.$i;
echo "<button onclick=\"SetActDone(
".$PlanningArray[$i]'PlanID'].",
".$PlanningArray[$i]['ActID'].",
".$TickCrossDiv.")\" >
Mark as done</button>"
}
下面是函数:
function SetActDone(PlanID,ActID,DivID)
{
$.ajax({
type: "POST",
url: 'testAjax.php',
data: {PlanID:PlanID, ActID:ActID},
success: function(data) {
$("#" + DivID).html('<p>Status: Done</p> <i style="color:greenyellow; " class="fa fa-check-circle fa-2x"></i>');
}
});
}
我收到错误:
未捕获的错误:语法错误,无法识别的表达式:#object HTMLDivElement
答
不知道$PlanningArray[$i][...]
的值我无法肯定地说。但很可能你需要将你的回显变量包含在引号中。这将解释为什么一个数字可以工作,它将被视为一个整数而不是一个字符串。试试这个:
for($i=0;$i<count($PlanningArray);$i++){
$TickCrossDiv = 'tickCrossDiv'.$i;
echo "<button onclick=\"SetActDone(
".$PlanningArray[$i]['PlanID'].",
".$PlanningArray[$i]['ActID'].",
'".$TickCrossDiv."')\" >
Mark as done</button>"
}
我猜$PlanningArray[$i]['PlanID']
和$PlanningArray[$i]['ActID']
也整数所以他们并不需要用引号引用做。
我也固定在这条线一个错字:
$PlanningArray[$i]'PlanID']
如果你的代码工作,这错字可能不是你的真实脚本。
非常感谢!它现在工作,我把$ TickCrossDiv放在引号中,是的$ PlanningArray [$ i] ['PlanID']和$ PlanningArray [$ i] ['ActID']是整数 –