1

私はこのようなスクリプトを持っています:

  $(function() {
     $(".btn_bookmark").click(function() {

   var name = $("input.???").val(); 
   base_url = '<?php echo base_url() ?>';

    $.ajax({
            url: base_url+"bookmark/bookmark_item/"+name,
            success: function() {
                    // do something on success
            }
         });
    return false;
    });
});

そして、私のフォームは次のようなPHPループ内にあります。

foreach($page->result() as $row){
   echo '<form name="" method="post" action="">';
   echo '<input type="hidden" name="'$row->name'" id="'.$row->id.'" size="30" value="'.$row->val.'" />';
   echo '<input type="submit" name="submit" class="btn_bookmark" id="submit_btn" value="Bookmark" />';
   echo '</form>';
}

問題は、非表示の入力名、ID、および値の各フォームがMySQLデータベースとは異なる/動的であるということです。では、入力に正しい値を選択するにはどうすればよいでしょうか。

4

3 に答える 3

2
$(".btn_bookmark").click(function() {
    var name = $(this).prev().val();
    base_url = '<?php echo base_url() ?>';

    $.ajax({
            url: base_url+"bookmark/bookmark_item/"+name,
            success: function() {
                    // do something on success
            }
         });
    return false;
    });
});

このようにして、非表示の要素である前の要素を取得します。

于 2013-01-17T01:59:15.693 に答える
2

つかむのではなくvar name = $("input.???").val();

次のように非表示の入力を取得できます。

$(this).parent().find('input[type=hidden]').val();

これにより、イベントをトリガーする要素(この場合はフォーム)の親が取得され、この親の非表示の入力子が取得されます。

于 2013-01-17T02:01:34.607 に答える
0

実装はあなたのものとは異なりますが、機能するはずです。

これを試して:

foreach($page->result() as $row){
   echo '<form name="" method="post" action="">';
   echo '<input type="hidden" name="'$row->name'" id="bkmark'.$row->id.'" size="30" value="'.$row->val.'" />';
   echo '<input type="submit" name="submit" class="btn_bookmark" id="submit_btn" value="Bookmark" onClick="bookmarkThis(\'#bkmark' . $row->id . '\');" />';
   echo '</form>';
}

そしてあなたのjsは次のようになります:

$(function() {
     boomarkThis = function(someId) {
         var name = $(someId).val();
         base_url = '<?php echo base_url() ?>';

          $.ajax({
                url: base_url+"bookmark/bookmark_item/"+name,
                success: function() {
                        // do something on success
                }
             });
        return false;
        });
     }
于 2013-01-17T01:58:58.760 に答える