Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript数组传递到PHP生成的内联函数调用中_Javascript_Php_Jquery_Arrays - Fatal编程技术网

如何将JavaScript数组传递到PHP生成的内联函数调用中

如何将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-

我已经从一个数组构建了一个动态列表,并且必须内联打印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?


我如何重新编写此代码以使调用不内联?

最短的答案是:使用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>