我正在尝试通过这样做将我的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
- 属性值开头的引号
- 完成属性值的引号
使用 htmlspecialchars
使数据可以安全地插入到 HTML 中的属性值中。
生成JS以插入到插入到PHP中的HTML中会使事情相对难以管理。
我建议将数据插入data-*
属性并使用 JavaScript 绑定委托的事件处理程序,而不是使用 onclick
属性。