如何为PHP生成的for-each循环的每次迭代从列表中选择一个随机变量?

时间:2019-08-30 21:45:13

标签: javascript php jquery

每次我的php代码循环时,它都会为购物车项目创建一张新卡。我想从每个不同卡的列表中随机选择卡的背景颜色。

我添加了脚本以选择随机颜色,并且jquery选择了卡片,但它仅更改了循环的第一项,其余部分不受jquery的影响。

HTML + PHP:

<?php foreach($sArray as $sizeString){ ?>
div id="item_card" class = "cart_item_wrapper" >
<?php } ?>

脚本:

var colors = ['#ff0000', '#00ff00', '#0000ff'];
var random_color = colors[Math.floor(Math.random() * colors.length)];
$('#item_card').css('background-color', random_color);

因此,这仅影响第一张卡片,我希望从“颜色”变量中随机选择每张卡片的颜色。 谢谢。

2 个答案:

答案 0 :(得分:0)

PHP:

div class="cart_item_wrapper item_card"

JS:

$('.item_card').css('background-color', random_color);

我知道,对吧?

答案 1 :(得分:0)

通过串联循环数组的随机数或索引,使item_card id唯一。然后,将该参数作为参数传递给脚本函数,并用于应用颜色。

例如:

<?php foreach($sArray as $index=> $sizeString){?>
    <div id="item_card<?php echo $index?>" class = "cart_item_wrapper"></div>
<?php } ?>

然后

function pickColor(index) {
    var colors = ['#ff0000', '#00ff00', '#0000ff'];
var random_color = colors[Math.floor(Math.random() * colors.length)];
    $('#item_card' + index).css('background-color', random_color);
}