使用html中的按钮onclick将php数组发送到javascript函数

Posted

技术标签:

【中文标题】使用html中的按钮onclick将php数组发送到javascript函数【英文标题】:Sending php array to a javascript function with button onclick in html 【发布时间】:2022-01-23 17:43:56 【问题描述】:

也许有点混乱。

我有一个数据表。在这个数据表中,最后有一个编辑按钮。单击编辑按钮打开一个模式。我想将此数据表中的数据传递给模态。我可以将其作为单个变量发送,但是当我想将数据转换为数组并将其丢弃时,会出现错误。

我的桌子:

<td><input type="text" value="<?= $datt['a']; ?>" id ="a" class="form-control"/> </td>
<td><input type="text" value="<?= $datt['b']; ?>" id ="b" class="form-control"/> </td>
<td><input type="text" value="<?= $datt['c']; ?>" id ="c" class="form-control"/> </td>  
<? $arry = array(
"a" => $datt['a'],
"b" => $datt['b'],
"c" => $datt['c']);  ?>
<td><button id="updd" class="btn btn-success updd" data-toggle="modal" data-target="#updd" onclick="show_fun(<?= $arr ?>)">Edit</button></td>

JS函数:

function show_fun(datt)
$(document).on("click", ".updd", function (e) 
 var obj = datt;

 console.log(datt);

);

结果:

Array() [本机代码]

我还发送了带有 json_encode 的数组。

我试过了

onclick="show_fun(<?= $arr ?>)"

而不是

onclick="show_fun(<?= json_encode($arr) ?>)"

结果:

未定义

如何向模态发送数据?

【问题讨论】:

您不能回显数组。在回显之前尝试使用json_encode 对其进行正确编码 好吧 datt 未定义。 dat 已定义 【参考方案1】:

您不需要内部点击侦听器。在 html 中:

<button ... onclick="show_fun(<?= json_encode($arr); ?>);" />

在 JS 中:

function show_fun(dat) 
 console.log(dat);

【讨论】:

这并不完全是解决方案。我需要使用 htmlspecialchars(json_encode($arr)) 而不是 json_encode($arr)。谢谢。

以上是关于使用html中的按钮onclick将php数组发送到javascript函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将按钮值发布到 PHP?

如何将html表单中的数组发送到php

div 项目的 php onclick 将帖子发送到 url

Ajax加载后按钮上的JQuery HTML onclick属性不起作用

onclick返回php文件后自动发送html表单

子组件中的 onClick 操作发送错误的元素