我的PHP循环时遇到了一点问题。我正在从我的数据库中循环出所有可用的成员资格包(及其详细信息)。
我的代码是这样的:
<?php
while($mp = mysql_fetch_assoc($s)):
?>
<tr class="hover">
<td class="name" width="30%"><?php echo $mp['membershipname']; ?></td>
<td class="price" width="30%">$<span><?php echo $mp['ap_price']; ?></span>/<span><?php echo $mp['duration']; ?></span> days.</td>
<?php if($userdata['membership']>$mp['membershipid']): ?>
<td width="40%" class="purchase"></td>
<?php else: ?>
<td width="40%" class="purchase" >
<a href="#" id="upg<?php echo $mp['id']; ?>" class="click cgreen inline">Pricing</a>
</tr>
<?php endif; ?>
<div style='display:none'>
<div id='inline_content' style='padding:10px; background:#fff;'>
<div style="text-align:center;font-weight:bold">Please select your payment method:</div>
<div style="text-align:center">
<br />
<?php
if($sdata['allow_paypal'] == 1 && $mp['pp_price']>0 && $userdata['paypal']!=""): ?>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="float:left;" >
<input type="submit" name="submit" class="click cblue" value="PayPal - $<?php echo $mp['pp_price']; ?>">
</form>
<?php endif;
if($sdata['allow_alertpay'] == 1 && $mp['ap_price']>0 && $userdata['alertpay']!=""):
//Do not change any input fields, OTHER than return URL (if needed)
?>
<form method="post" name="ap" action="https://www.alertpay.com/PayProcess.aspx" style="float:right;" >
<input type="submit" name="submit" class="click cgreen" value="AlertPay - $<?php echo $mp['ap_price']; ?>" />
</form>
<?php
endif; ?>
</div>
</div>
</div>
<script>
$(document).ready(function(){
$("#upg<?php echo $mp['id']; ?>").colorbox({inline:true, width:"30%",href:"#inline_content"});
});
</script>
<?php endwhile; ?>
正如您在上面的代码中看到的,我正在做一个while循环。
我的问题是 #inline_content中的$mp['pp/ap_price']
没有循环播放。它只接受第一行的价格。虽然,它正在表中循环。
这里有什么问题?我试图在#inline_content中做另一个循环,但它不起作用。
答案 0 :(得分:1)
HTML ID对一个 DOM元素应该是唯一的。
您的数据库查询结果中的每个记录都有一个DOM元素#inline_content
。然后,当您尝试使用Javascript全部显示它们时,只显示一个,因为它们都具有相同的ID。
HTML和Javascript不知道您的PHP循环。
考虑使用class
属性而不是id
属性。