在javascript参数中传递长字符串

时间:2013-08-16 06:56:17

标签: php javascript arrays

我有一个php页面,我有一些值为long值的数组。

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

$ canswer是一个数组 我正在爆炸并传递如下的参数,

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

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

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

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

此致 雷卡

3 个答案:

答案 0 :(得分:0)

您可以将值数组保存为页面上的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)">

答案 1 :(得分:0)

  1. 在探索数组之前将其添加为参数(print_r?)
  2. 将javascript函数提取到javascript文件中
  3. 使用jason将数组作为参数传递
  4. 希望这能解决问题

答案 2 :(得分:0)

您可能无法转义输出中的某些特殊字符。通过htmlentitieshtmlspecialchars运行您的输出,以消除会破坏您的HTML或JavaScript的字符。

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

注意输出中断的位置,以及可能破坏它的字符。