2011-10-11 2 views
-2

PHP while 루프에 약간의 문제가 있습니다. 내 데이터베이스에서 사용 가능한 모든 멤버십 패키지 (및 세부 정보)를 반복하고 있습니다.while() - 루핑되지 않음 - 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; ?> 

당신이 위의 코드에서 볼 수 있듯이

, 나는 잠시 루프를하고있는 중이 야.

내 문제는입니다. #inline_content 내의 $mp['pp/ap_price']이 반복되지 않습니다. 첫 번째 행에서 가격 만받습니다. 하지만, 그것은 테이블에서 반복됩니다.

무엇이 문제입니까? #inline_content 내에서 다른 루프를 만들려고했으나 작동하지 않았습니다.

+1

모든 불필요한 세부 사항을 제거하십시오. 여기서 몇 줄의 테스트 케이스를 만드는 것은 쉽습니다. 예 : 우리는 확실히 그 _all_ 그 HTML을 통해 trawl 필요가 없습니다 ... –

답변

1

HTML ID는 하나의 DOM 요소에 고유해야합니다.

당신은 데이터베이스 쿼리 결과에 모든 레코드에 대한 DOM 요소 #inline_content 있습니다. 그런 다음 Javascript를 사용하여 모두 표시하려고하면 모든 ID가 동일하므로 하나만 표시됩니다.

HTML과 자바 스크립트는 PHP 루프를 인식하지 못합니다.

id 속성 대신 class 속성을 사용하는 것이 좋습니다.

+0

고마워! 그것은 효과가 있었다. – oliverbj