我正在编写一个 php 函数,它将内容附加到 $results 变量,并将返回附加到它的所有结果。
我有一个变量 $myArray,它包含许多单独的数组,如下所示
Array(
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
)
Array(
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
)
Array(
[0] => orange
[1] => yellow
[2] => green
[3] => blue
)
在我的代码中,我循环遍历内容以在屏幕上生成按钮和数据。理想情况下,如果按下第一个按钮,则显示第一个数组(ABC,DEF,GHI,JKL),第二个按钮(MNO,123A,123B,123C)等的内容。
这是我生成内容的循环
for($index=0; $index < count($exampleArray); index++){
$myArray = array_values(array_filter($exampleArray[$index]["Column2"]));
$returnVariable .= '<td>
<button type="button" class="open-my-modal btn btn-primary"
data-numbers="'.htmlspecialchars(json_encode($myArray), ENT_QUOTES, 'UTF-8').'" </td>';
上面的代码根据正在传递并发送到模式的数据生成不同的按钮。我创建 id 的模态代码部分如下
$returnVariable .= '<tr>
<td><span id ="value1"></span></td>
<td><span id ="value2"></span></td>
<td><span id ="value3"></span></td>
<td><span id ="value4"></span></td>
</tr>
然后我有一个脚本,当模式打开时,我将数据链接到 html id。
$returnVariable .= '<script>
$(document).ready(function () {
$(".open-my-modal").click(function(){
$("#value1").html($(this).data("numbers")[0]);
问题是无论哪个按钮都会显示相同的信息。在任何按钮上传递的唯一数据是 ABC、DEF、GHI、JKL。
我打电话
$("#value1").html($(this).data("numbers")[0]); Only ABC will show.
如果我打电话
$("#value1").html($(this).data("numbers")); It shows ABC up to JKL
数据应该根据单击的按钮动态变化。 MNO 等或橙色、黄色永远不会出现。对于每个按钮,它仅采用第一个数组。
例如,内容将动态循环
<td><span id ="value1"></span></td> = ABC
<td><span id ="value2"></span></td>= DEF
<td><span id ="value3"></span></td>= GHI
<td><span id ="value4"></span></td>= HIJ
单击“下一步”按钮的值应该 =
<td><span id ="value1"></span></td> = MNO
<td><span id ="value2"></span></td>= 123A
<td><span id ="value3"></span></td>= 123B
<td><span id ="value4"></span></td>= 123C
等等,等等
最佳答案
发生这种情况的原因是 $myArray
被覆盖。您发布了:
Array(
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
)
Array(
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
)
Array(
[0] => orange
[1] => yellow
[2] => green
[3] => blue
)
嗯,数组键[0],[1],[2],[3]
在每个实例中都是相同的,并且没有任何东西可以“包含”每个数组。
你确实需要一个多维数组,更像这样:
[0] => [
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
],
[1] => [
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
],
// ...
如果您使用 var_dump($myArray[0]);
您将获得“第一个”集合(数组从 0 开始索引):
[0] => ABC
[1] => DEF
[2] => GHI
[3] => JKL
并且 var_dump($myArray[1]);
为您提供第二组:
[0] => MNO
[1] => 123A
[2] => 123B
[3] => 123C
等等...
多维数组中的按键可以对应按下的按钮,例如
- 按钮 1:
$myArray[0]
- 按钮 2:
$myArray[1]
- 按钮 3:
$myArray[2]
- 按钮 4:
$myArray[3]
关于javascript - PHP 数组不通过循环显示所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329832/