1

我有一个 php 页面,其中包含长值的值数组。

我给了在这样的javascript函数中传递这个数组

$canswer 是一个数组,我将其分解并作为参数传递如下,

$cans=implode(',',$canswer);
echo "<input type='checkbox' name='q1' id='1' onclick=\"save_answer('1','$cans')\">";

此代码适用于数组中的短值。当我在数组中有长值时,onclick 不起作用。当我试图查看查看源时,我看到页面中的数组值被截断。

我已尝试使用以下代码为每个值提供引号。但这也不起作用。

$correctanswer1="'" . implode("','", $correctanswer) . "'";echo $correctanswer1; 

问候, 雷哈

4

3 回答 3

1

您可以将值数组保存为页面上的 javascript 字符串,然后在onclick属性中调用该字符串。

<script type="text/javascript">
    cans_string = '<?php echo implode(',',$canswer); ?>';
</script>

<input type="checkbox" name="q1" id="1" onclick="save_answer('1',cans_string)">
于 2013-08-16T07:01:54.860 回答
0
  1. 在将其添加为参数之前探索数组(print_r?)
  2. 将javascript函数提取到javascript文件中
  3. 使用 jason 将数组作为参数传递

希望这能解决问题

于 2013-08-16T07:04:34.827 回答
0

您可能没有转义输出中的某些特殊字符。htmlentities通过或htmlspecialchars消除会破坏 HTML 或 javascript 的字符运行您的输出。

$cans=htmlentities(implode(',',$canswer), ENT_QUOTES);
echo "<input type='checkbox' name='q1' id='1' onclick=\"save_answer('1','$cans')\">";

注意你的输出在哪里中断,以及哪些字符可能会中断它。

于 2013-08-16T07:09:57.923 回答