如何正确地将PHP对象作为参数传递到调用的javascript函数中



我正在尝试通过这样做将我的PHP数组(对象(传递到我的javascript函数中:

<td>
    <a href="#do=View?id=<?php echo $row['id']; ?>" onClick="manageFormView(1, <?php echo json_encode($test) ;?>)"><i class="fas fa-eye cyan-text"></i></a>  
    <a href="#do=Edit?id=<?php echo $row['id']; ?>" ><i class="fas fa-pencil-alt blue-grey-text"></i></a>
    <a href="#do=Delete?id=<?php echo $row['id']; ?>"><i class="fas fa-trash red-text"></i></a>
</td>

我担心的是,每当执行我的manageFormView函数时,它都会给我这个日志:

Uncaught SyntaxError: Unexpected end of input

来源是:

<a href="#do=View?id=1" onClick="manageFormView(1, {"id":"1","name":"Sample Departmentsss","code":"SDT"})"><i class="fas fa-eye cyan-text"></i></a>

缺少什么语法?

编辑

function manageFormView(flag,row){
    document.getElementById("form3").value = row;
    console.log("flag and row "+flag+" "+row);
};

查看生成的源。识别错误:

onClick="manageFormView(1, {"
        1                   2
  1. 属性值开头的引号
  2. 完成属性值的引号

使用 htmlspecialchars 使数据可以安全地插入到 HTML 中的属性值中。


生成JS以插入到插入到PHP中的HTML中会使事情相对难以管理。

我建议将数据插入data-*属性并使用 JavaScript 绑定委托的事件处理程序,而不是使用 onclick 属性。

最新更新