2

だから私はphpループを持っています、私はjqueryスライドトグルを使用してSQL結果を含むテーブルを表示/非表示にします。現在、テーブルはphpのみを使用してロードされますが、ロードの問題が発生することが多いため、スライドトグルbtnを使用してajaxを起動する必要があるため、ボタンが押されたときにのみ現在のアイテムの詳細を要求します。jqueryからphpファイルを呼び出すように取得できますが、各アイテムの値を渡すのが難しいため、データベースでリクエストを実行できます。phpforeachループのコンテンツは次のようになります。

<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を隠すためにjqueryslidetoggleを使用します、私がする必要があるのはphpからの結果をslide_areaに入力することです、phpファイルは名前がURLでgetを介して渡される結果を返すために名前を必要とします、それで私だけbtnの値から実際の名前をURLに追加する必要があります。これはそれほど難しいことではないはずですが、ここにいます。

これがjqueryです:

<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>

btnから値を取得し、loadURLを追加する必要があります。必要に応じて、postを介してデータを送信するなど、別の方法でデータを送信できます。jqueryを更新しても、ここで何が間違っているのでしょうか。

ありがとう。

4

1 に答える 1

1

Phery ライブラリhttp://phery-php-ajax.net/を使用する最も簡単な方法 は、data-phery-remote="toggle"クリックすると PHP 関数が自動的に呼び出され、どこでも再利用できることです。

<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>

ロジックが逆になり、ロードは 2 回ではなく 1 回の 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();
于 2012-11-12T03:38:31.467 に答える