如何将JavaScript数组传递到PHP生成的内联函数调用中
我已经从一个数组构建了一个动态列表,并且必须内联打印onclick事件,我不知道还有其他方法可以做到这一点如何将JavaScript数组传递到PHP生成的内联函数调用中,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我已经从一个数组构建了一个动态列表,并且必须内联打印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-
<?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?
或
我如何重新编写此代码以使调用不内联?最短的答案是:使用json_encode()将数组转换为json字符串,但这不是一种好做法。最短的答案是:使用json_encode()将数组转换为json字符串,但无论如何,这不是一个好的做法。因为您试图打印数组,就像自动将其自身转换为javascript数组一样,也就是用逗号分隔的字符串值(这是它需要输出到html的内容,浏览器可以理解) 为此,您需要: 字符串内爆(字符串$glue,数组$pieces) 使用$glue字符串连接数组元素
ECHO”
“$dataArray[$btn]”
“;
它接受数组中的每个元素,并在每个元素之间放置$glue字符串。最终结果如下所示:
//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中的数组
...
请记住,PHP和Javascript彼此不认识。因为您试图打印数组,就像自动将其自身转换为Javascript数组一样,也就是用逗号分隔的字符串值(这是它需要输出到html的内容,浏览器可以理解) 为此,您需要: 字符串内爆(字符串$glue,数组$pieces) 使用$glue字符串连接数组元素
ECHO”
“$dataArray[$btn]”
“;
它接受数组中的每个元素,并在每个元素之间放置$glue字符串。最终结果如下所示:
//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中的数组
...
记住PHP和Javascript彼此不认识。我不明白。那会去哪里?我不明白。那会去哪里?没用。JavaScript函数将数组作为其参数,而不是逗号分隔的字符串列表。谢谢,我仍然有问题,但这可能是单引号和双引号的问题。在PHP中使用双引号可以用“\”转义HTML中需要的引号。正如我上面所做的,HTML中不会显示“\”。不起作用。JavaScript函数将数组作为其参数,而不是逗号分隔的字符串列表。谢谢,我仍然有问题,但这可能是单引号和双引号的问题。在PHP中使用双引号,这样您就可以用“\”来转义HTML中所需的双引号,正如我前面所做的那样,“\”不会显示在HTML中。一旦结果在JS中,我很难将其转换为数组。一旦结果在JS中,我很难将其转换为数组
//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>