1

MYSQLデータベースからいくつかの会社をリストしたWebページがありますが、リストには会社の名前だけが表示されています。ユーザーが会社名をクリックすると、jqueryアコーディオンスライダーにその会社に関する残りの情報が表示されます。

会社名をクリックすると、phpスクリプトにリクエストを送信して、その会社の詳細を閲覧したことをログに記録します。

私の問題

各レコードのIDをphpスクリプトに送信したいと思います。

mysqlクエリの出力を読み取るwhileループ内にアコーディオンjqueryコードを含めることでこれを実現しましたが、不要なソースコードが大量に生成されます(つまり、リストされている会社ごとに)。

whileステートメントの外にjqueryアコーディオンコードを含める必要があります。

whileループの外にある場合、各データベースレコードのID(つまり会社名)をjqueryコードの$ .postに渡すにはどうすればよいですか?

アコーディオンJqueryコード

$(document).ready(function() {    $('div.listing> div').hide();     $('div.listing> h4').click(function() {


 $.post("/record.php", { id: "<?php echo $LM_row02[id]; ?>" } ) 

    var $nextDiv = $(this).next();
    var $visibleSiblings = $nextDiv.siblings('div:visible');

    if ($visibleSiblings.length ) {
      $visibleSiblings.slideUp('fast', function() {
        $nextDiv.slideToggle('fast');
      });
    } else {
       $nextDiv.slideToggle('fast');
    }   }); });

どんなアイデアでも大歓迎です。

4

2 に答える 2

1

HTMLを作成するとき(ループでも作成すると思います)、data-*IDを値として持つ属性を要素に追加し、要素がクリックされたときにjQueryでその値を読み取ります。

たとえば、結果のHTMLは次のようになります。

<h4 data-id="123">Some title</h4>

とあなたのJavaScript:

$('div.listing > h4').click(function() {

    $.post("/record.php", { id: $(this).attr('data-id') }, function() {
        // ...
    }); 

});
于 2012-05-11T10:44:20.490 に答える
1

htmlでh4要素を作成するときは、次のようなhtml5データ属性を追加します。

<h4 data-companyid="<?php echo $LM_row02[id]; ?>">Company Name</h4>

次に、そのcompanyidをajax呼び出しで次のように使用します

$.post("/record.php", { id: $(this).data('companyid') } );
于 2012-05-11T10:45:40.647 に答える