php
  • html
  • 2013-09-02 3 views -2 likes 
    -2

    페이지 매김 섹션에있는 부트 스트랩 "호출기"를 사용하고 있습니다. 여기 왜 <a> 태그가 중복됩니까?

    내가 PHP에서 그것의 HTML로드하는 데 사용하고 무엇을 : 나는 실제로이를로드 할 때 지금

    echo "<ul class='pager'>"; 
    echo ($total > $lim) ? "<li class='previous'>" : "<li class='previous disabled'>"; 
    echo ($total > $lim) ? "<a href='#status' onclick='getStatuses(" . (($lim+10)/10) . ")'>&larr; Older</a>" : "<a>&larr; Older</a>"; 
    echo "</li>"; 
    echo ($lim == 10) ? "<li class='next disabled'>" : "<li class='next'>"; 
    echo ($lim == 10) ? "<a>Newer &rarr;</a>" : "<a href='#status' onclick='getStatuses(" . (($lim-10)/10) . ")'>Newer &rarr;</a>"; 
    echo "</li>"; 
    echo "</ul>"; 
    

    를,이 같은 반환

    <ul class="pager"> 
    <a></a> 
    <li class="previous disabled"> 
    <a></a> 
    <a>← Older</a> 
    </li> 
    <li class="next disabled"> 
    <a>Newer →</a> 
    </li> 
    </ul> 
    

    은 2있다 무작위로 보이는 것 <a></a> 태그. 어떻게 제거 할 수 있습니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

    +6

    HTML을 확인하십시오. 이것은 PHP가 생성 한 실제 HTML이 아니지만 브라우저가 HTML을 변환 한 HTML입니다.이 블록 앞에 HTML에 유효성 검사 오류가 있기 때문입니다. – DCoder

    +1

    실제 페이지 소스를 봅니다. 브라우저의 DOM 검사기에 의존하지 마십시오 – Phil

    답변

    2

    PHP에서 HTML 묶음을 인쇄하면 일반적으로 코드 이해가 어려워집니다. 더 나은 예를

    필과 합의
    // drop out of PHP 
    ?> 
    <ul class="pager"> 
        <?php if ($total > $lim) : ?> 
         <li class="previous"> 
          <a href="#status" onclick="getStatuses(<?= ($lim+10)/10 ?>)">&larr; Older</a> 
         </li> 
        <?php else : ?> 
         <li class="previous disabled"> 
          <a>&larr; Older</a> 
         </li> 
        <?php endif ?> 
        <?php if ($lim == 10) : ?> 
         <li class="next disabled"> 
          <a>Newer &rarr;</a> 
         </li> 
        <?php else : ?> 
         <li class="next"> 
          <a href="#status" onclick="getStatuses(<?= ($lim-10)/10 ?>)">Newer &rarr;</a> 
         </li> 
        <?php endif ?> 
    </ul> 
    
    <?php 
    // and now back to PHP 
    
    -1

    를 들어, 대부분의 PHP 컨텍스트 중퇴,하지만 내 생각은 & larr 또는 당신이 당신의 삼항 표현의 주위에 괄호가없는 사실 일 것이다. 사용해보기 :

    echo "<ul class='pager'>"; 
    echo (($total > $lim) ? "<li class='previous'>" : "<li class='previous disabled'>"); 
    echo (($total > $lim) ? "<a href='#status' onclick='getStatuses(" . (($lim+10)/10) . ")'> Older</a>" : "<a> Older</a>"); 
    echo "</li>"; 
    echo (($lim == 10) ? "<li class='next disabled'>" : "<li class='next'>"); 
    echo (($lim == 10) ? "<a>Newer &rarr;</a>" : "<a href='#status' onclick='getStatuses(" . (($lim-10)/10) . ")'>Newer</a>"); 
    echo "</li>"; 
    echo "</ul>"; 
    
    +0

    'echo condition? true response : false response'는 PHP에서 잘 동작합니다. 조건 주위에 괄호가 필요하지 않습니다. 예를 들어'echo 1 == 2? 'a': 'b' '. 또한 '←'(←)과'→'(→)은 완전히 유효한 HTML 엔터티입니다. – Phil

    관련 문제