我有一个名副其实的(num),用于将ID的名称递增1 num + 1,但是在我的foreachloop中,我无法访问它。
我尝试在循环仍然无法工作之前声明它
<?php $num = 0; ?>
<?php foreach($listings as $list):?>
<li>
<div class="checkbox">
<input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num+1;?>" name="treatment<?php echo $num+1;?>">
<label for="visit<?php echo $num+1;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>£</span></strong></label>
</div>
</li>
<?php endforeach; ?>
</ul>
<hr>
<input type="hidden" value="<?php echo $num;?>" name="total"/>
我希望输入id像treatment1
,treatment2
答案 0 :(得分:2)
您应该通过在循环内执行一次$num
来递增$num++;
变量,然后在不使用<?php echo $num; ?>
的情况下使用<?php echo $num+1; ?>
将其打印在需要的位置,因为这样做会仅在您回显它时增加它-不在每次迭代中添加一个。
<?php
$num = 0;
foreach($listings as $list):
$num++; // Increment $num for each iteration
?>
<li>
<div class="checkbox">
<input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num;?>" name="treatment<?php echo $num;?>">
<label for="visit<?php echo $num;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>£</span></strong></label>
</div>
</li>
<?php endforeach; ?>
如果$listings
是数字索引的,则可以使用
foreach($listings as $num=>$list):
?>
<li>
<div class="checkbox">
<input type="checkbox" class="css-checkbox" value="<?php echo $list['title'];?>" id="visit<?php echo $num;?>" name="treatment<?php echo $num;?>">
<label for="visit<?php echo $num;?>" class="css-label"><?php echo $list['title']?> <strong><?php echo $list['price'];?><span>£</span></strong></label>
</div>
</li>
<?php endforeach; ?>
答案 1 :(得分:1)
问题是您没有设置$ num变量的值,而只是在html标记内打印或回显它。您需要像这样在循环内添加或增加$ num变量。
<?php $num++; ?>
或
<?php $num = $num+1; ?>