while() - 不循环 - PHP

时间:2011-10-11 09:23:05

标签: php loops while-loop

我的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中做另一个循环,但它不起作用。

1 个答案:

答案 0 :(得分:1)

HTML ID对一个 DOM元素应该是唯一的。

您的数据库查询结果中的每个记录都有一个DOM元素#inline_content。然后,当您尝试使用Javascript全部显示它们时,只显示一个,因为它们都具有相同的ID。

HTML和Javascript不知道您的PHP循环。

考虑使用class属性而不是id属性。