2012-11-09 2 views
2

에 대한 작업을 수행하므로 PHP 루프를 사용하고 jquery 슬라이드 토글을 사용하여 SQL 결과가있는 테이블을 숨기거나 표시합니다. 현재 테이블은 php 만 사용하여로드되지만 일부 로딩 문제가 발생하므로 ajax를 슬라이드 토글 btn과 함께 실행해야하므로 버튼을 눌렀을 때 현재 항목의 세부 정보 만 요청합니다. jquery에서 php 파일을 호출 할 수 있지만 각 항목의 값을 전달하는 데 어려움이 있으므로 데이터베이스에서 요청을 수행 할 수 있습니다. 여기 PHP는 foreach 루프 콘텐츠를 어떻게 생겼는지입니다;php 루프의 ajax는

<span class="searchitem"> 
    // some visible content here 
    <span value="item name" class="btn">button</span> 
    <span class="slide_area"> 
    // hidden slide content ajax needs to populate with php result 
    </span> 
</span> 

이 HTML은 내가 slide_area를 숨길 JQuery와 slidetoggle를 사용하여 반복, 내가 뭘해야, PHP 파일이 이름이 GET을 통해 전달되는 결과를 반환하기 위해 이름이 필요 PHP의 결과로 slide_area을 채울 것입니다 url과 함께, 나는 단지 btn의 값으로부터 실제 이름을 가진 url을 추가 할 필요가있다. 이것은 어렵지 만 여기서 나는 어렵다. 여기

는 jQuery의 : 내가 필요하지 여전히 업데이트, 게시물을 통해 다른 방식으로 같은 jQuery를 데이터를 전송 작업에 오픈 메신저를 BTN에서 값을 얻고 loadURL를 추가 할 필요가

<script type="text/javascript"> 
//<![CDATA[ 
    $(document).ready(function() 
       { 
        $('.searchitem').each(function() { 
         $(this).find('.slide_area').hide(); 
         $(this).find('.btn').click(function() 
         { 
          var ajax_load = "<img src='images/spinner.gif' style='width:50px;' alt='loading...' />"; 
          var loadUrl = "ajax/item.php?name=";  
          var loadName = $(".btn"); 
          var Name = URLEncode(loadName); 
          var loadString = loadUrl + Name; 
     $(this).parent().find('.slide_area').slideToggle(1500).html(ajax_load).load(loadString); 
         }); 
        }); 
       }); 
//]]> 
</script> 

무엇 내가 여기서 잘못하고있는거야?

감사합니다.

+0

너의 '.' 텍스트에 아무 것도 없기 때문에 (점) 키를 깨뜨려야합니다. – mkilmanas

답변

1

가장 쉬운 방법은 Phery 라이브러리를 http://phery-php-ajax.net/ 여기에 키가 클릭에 자동으로 PHP 함수를 호출 할 data-phery-remote="toggle"이며, 논리가 반전 사방

<span class="searchitem"> 
    // some visible content here 
    <span value="item name" data-phery-remote="toggle" class="btn">button</span> 
    <span class="slide_area"> 
    // hidden slide content ajax needs to populate with php result 
    </span> 
</span> 

재사용 할 수있는, 부하를 사용하는 것 두 개가 아닌 한 번의 AJAX 호출만으로 발생합니다.

Phery::instance()->set(array(
    'toggle' => function($data){ 
    $r = new PheryResponse; 
    /* do your code, fill $html_content */ 
    $r->this()->siblings('.slide_area')->html($html_content)->toggle(); 
    return $r; 
    } 
))->process();