将php变量传递给javascript函数

将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'] 

如果你的代码工作,这错字可能不是你的真实脚本。

+0

非常感谢!它现在工作,我把$ TickCrossDiv放在引号中,是的$ PlanningArray [$ i] ['PlanID']和$ PlanningArray [$ i] ['ActID']是整数 –