如何正确地将PHP对象作为参数传递给所谓的javascript函数?

时间:2019-06-19 08:26:27

标签: javascript php

我正在尝试通过以下操作将我的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);
};

1 个答案:

答案 0 :(得分:2)

查看生成的源。找出错误:

onClick="manageFormView(1, {"
        1                   2
  1. 以引号开头的属性值
  2. 用引号括起来的属性值

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


生成JS插入HTML并插入PHP使得事情相对难以管理。

我建议将数据插入data-* attributes并使用JavaScript绑定delegated event handler,而不要使用onclick属性。