gpt4 book ai didi

javascript - 将 php 数组从外部 php 文件传递​​给 javascript 函数

转载 作者:行者123 更新时间:2023-11-28 03:44:36 24 4
gpt4 key购买 nike

我正在根据 sqlite 数据库中的数据自动填充 html 表单。我正在使用 this site 中的代码的修改版本就其基本功能而言,它按预期工作。主输入元素调用“onkeyup”,一个名为“lookup”的 JavaScript 函数,该函数又调用外部 PHP 脚本,传递当前字符串来查询数据库。

脚本返回一个字符串来更新输入表单:

echo '<li onClick="fill(\''.$result->value.'\');">'.$result->value.'</li>';

JavaScript 函数“fill”如下:

function fill(thisValue) {
$('#inputString').val(thisValue);
setTimeout("$('#suggestions').hide();", 200);

“#inputstring”只是一个输入元素。

我想要做的不是返回字符串,而是返回一个数组并在“fill”函数中解析它,以将不同的值分配给html中的不同元素。问题是要将 php 数组传递给 javascript,我必须以某种方式将其转换。我已经尝试将其设置为 json 字符串,如堆栈上多次建议的那样,但对于我认为是引号问题的问题,它总是返回空值。我试过:

$valuetopass = json_encode($query_result);

没有

echo '<li onClick="fill('.$valuetopass.');">'.$query_result['text'].'</li>'; 

并带有引号

echo ''.$query_result['text'].'';

都失败了。

我知道类似的问题已经被问过 1 , 2 ,ecc ...但是所有答案都建议在分配 javascript 变量时嵌入 php 。在我的例子中,php 是从函数“lookup”调用的,并且从该 php 脚本我想返回到函数“fill”。

如何从 php 内部生成一个包含 json 字符串的字符串,该字符串的格式可以传递给“fill”函数?

或者我怎样才能重新解决问题以便我根本不需要这样做?

最佳答案

您的 JSON 字符串可能包含 ",因此,当您将其插入 onClick="fill(...);" 时,您当然会遇到语法问题未经处理。

使用 PHP 的 htmlspecialchars 应该能够解决这个问题。

<小时/>

从长远来看,您可能希望更多地研究代码和数据的分离。
使用内联 HTML 属性附加事件处理程序有点“老派”,现在应该使用 addEventListener 分别从脚本内部完成。 JS 框架可能为此提供的任何包装方法。然后,可以将 JSON 数据放入自定义数据属性中,以便脚本可以从那里读取数据。

关于javascript - 将 php 数组从外部 php 文件传递​​给 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48622180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com