如何将JavaScript数组传递到PHP生成的内联函数调用中
How to pass a JavaScript array into an inline function call generated by PHP
我已经从数组中建立了一个动态列表,必须内联打印onclick事件,我不知道还有其他方法可以做到这一点。
<?php
$dataArray = $_POST['dataArray']; // This is a valid array
ECHO '<div id="colorSelectorBox">';
for ($btn = 0; $btn < sizeof($dataArray); $btn++){
ECHO '<div class="btn-group">
<button onclick="buildGroupList("'.$dataArray.'")">' .$dataArray[$btn].'</button>
<button><div ..Stuff..></div></button>
</div><br>';
}
ECHO '</div>';
?>
问题是,JavaScript函数buildGroupList()
不接收数组,而不是行看起来像这样在我的开发人员工具:
onclick="buildGroupList(Array)"
我如何通过JavaScript传递值数组?
或
我如何重写这个,使调用不是内联的?
最简短的回答是:使用json_encode(),它将数组转换为json字符串,但无论如何这不是一个好的做法。
因为您试图将数组打印为自动将其转换为javascript数组,也就是说,由逗号分隔的值的字符串(这是它需要输出到html的内容,浏览器可以理解)。
你需要内爆:
字符串内爆(string $glue, array $pieces)
用$glue字符串连接数组元素
ECHO "<div class='"btn-group'">
<button onclick='"buildGroupList(['".implode("','",$dataArray)."'])'">" .$dataArray[$btn]."</button>
<button><div ..Stuff..></div></button>
</div><br>";
取数组中的每个元素,并在每个元素之间放置$glue string。最终结果如下所示:
//let's assume this is your array in PHP
<?php
$dataArray = array('one','two','three');
?>
<!-- then your HTML looks like this -->
<button onclick="buildGroupList(['one','two','three'])">...</button>
相关文章:
- 调用php数组中的JS函数
- 使用ajax用jquery调用php函数
- 如何使用OnClick事件通过参数调用来调用PHP函数
- php javascript代码从javascript调用php函数
- 从 java 脚本调用函数时 PHP 中出错
- 如何从jQuery调用PHP函数
- 从Javascript函数调用PHP函数
- 使用ajax从javascript/jquery调用php函数
- PHP函数调用和Javascript代码中的数组传递
- 使用AJAX在单独的文件中调用php函数
- 使用ajax/javascript调用php函数
- 使用javascript中的相同代码为REST服务调用php函数
- PHP 重复函数调用,最佳实践
- 在 HTML 代码中调用 PHP 函数,在 PHP echo 语句中
- Javascript调用php函数并接收返回的结果
- 通过 Ajax 调用 PHP 函数
- JavaScript 函数在 php 代码中的调用中不起作用
- 如何从 JavaScript 函数调用 php 函数
- 如何在Jquery Easy UI中使用javascript函数调用php函数
- 使用ajax从Javascript函数调用Php函数