【发布时间】:2021-01-21 02:44:46
【问题描述】:
我正在尝试将数组和输入值从表单传递到 javascript 函数。
$quotes 是一个帖子数组。
<form method="post">
<p>Search:<input type="text" name="qSearch" id="qSearch"
size="40" value="" /></p>
<button type="button" onClick='searchQuotes(<?php echo json_encode($quotes); ?>, <?php echo json_encode($_POST["qSearch"]); ?>)'>
Submit
</button>
</form>
当我提交表单时,我在控制台上收到错误消息:(index):252 Uncaught SyntaxError: Invalid or unexpected token
单击它会转到生成的 HTML 代码,即:
<button type="button" onClick='searchQuotes([{"image":{"ID":9990,"Title-height":308}},"keywords":["General Leadership"]], "hats");'>
最后一个>下方有一颗红克拉
看起来它正确地编码了数组,但我无法摆脱这个错误。这让我发疯!有什么想法吗?
【问题讨论】:
-
您在
searchQuotes(...onclick 函数的末尾缺少) -
就像@Darren 说的......同样
}}, "keywords":[是无效JSON 的开始。您在"keywords":之前关闭了 Object,这需要在 Object 中,但现在不在。 -
@Darren,这是一个复制和粘贴错误,它实际上是在真实代码中。我在上面的例子中修复了它。仍然有同样的错误。
-
@StackSlave,我将两件事传递给函数 - 第一个变量是一个包含两个项目的数组,第一个是一个对象
(image),它有两个对象(ID and TItle-height),然后是一个数组关键字,然后第二个变量是字符串(hats)。这就是json_encode编码我的变量quotes的方式。那么有没有其他方法可以将这个PHP变量传递给js函数呢?
标签: javascript php html forms