2

HTML テーブルがあり、各行に削除ボタンを追加したいと考えています。ユーザーがそれをクリックすると、次の 2 つのことを行います。

1) テーブルから行を削除します。2) 削除された行 (特定のセル) からデータを抽出し、この値を使用して、データベースからレコードを削除する関数への ajax 呼び出しを行います。この関数は、アイテムの新しいリストを返します。これを使用して、同じテーブルを再表示します。

stackoverflow で他の誰かからの次の投稿を見つけました: How to remove current row from table in jQuery?

それで、それがポイント1に対処していると思います。しかし、投稿の選択された回答のコードを変更して、行の id 値を取得し、ajax 呼び出しを行う方法がわかりません。

      <table class="table table-bordered table-striped"  id="databaserecords">
      <thead>
          <tr>
              <th>Id</th>
              <th>Name</th>
              <th>Status</th>
              <th>Voice</th>
              <th>Jumbo</th>
              <th>Mode</th>
              <th>&nbsp;</th>
          </tr>
      </thead>
      <tbody>

          <?php foreach ($dblist as $record): ?>
              <tr>          
              <td class ='recordId'><?php echo $record['Id'] ?></td>
              <td class ='recordName'><?php echo $record['Name'] ?></td>
              <td><?php echo $record['Status'] ?></td>
              <td><?php echo $record['Voice'] ?></td>
              <td><?php echo $record['Jumbo'] ?></td>
              <td class='recordmode'><?php echo $record['Mode'] ?></td>
              <td><button id="deleteRecord">Delete Record</button></td>
            </tr>
          <?php endforeach ?>


 <script>

    $('#deleteRecord').live('click', function()  {

                //get a count of all records. only allowed to delete if you have more than one record.
                var recCount = $('#databaserecords tbody tr').length;

                if (recCount > 1)
                {
                    $thevalueIwanttoSave = $(this).closest('recordId').val();
                                alert($thevalueIwanttoSave);
                            }

    });

 </script>

現在、アラートは常に私の変数が未定義であると言っています。正しい方向に私を向けることができますか?私はajax呼び出しをコーディングする方法を知っています...テーブルから値を取得するのに助けが必要だと思います。

ありがとう。

4

5 に答える 5

2

あなたのセレクターは正しくありません。

$thevalueIwanttoSave = $(this).parent().siblings('.recordId').text();

closest要素の最も近い親を選択し(recordIdはボタン要素の親/祖父母または..ではありません)、.クラスセレクターも見逃しています。valフォーム要素の値の取得/設定、使用する必要がある td 要素、textまたはhtmlメソッドに使用されます。また、ID は一意である必要があり(代わりにクラスを使用できます)、liveメソッドは非推奨であることに注意してくださいon。メソッドを使用できます。

$('#databaserecords').on('click', '.deleteRecord', function() { 

    var recCount = $('#databaserecords tbody tr').length;

    if (recCount > 1) {
        var text = $(this).parent().siblings('.recordId').text();
        alert(text);
        // $(this).closest('tr').remove()
    }

});​
于 2012-10-01T13:59:38.713 に答える
0
$thevalueIwanttoSave = $(this).parent('tr').find('.recordId').text();
于 2012-10-01T14:00:03.270 に答える
-1

削除ボタンの属性に ID を追加すると、jQuery 経由で取得できます。

あなたのphpループで:

<button class="deleteRecord" recordID="<?php echo $record['Id'] ?>">レコードを削除</button>

JQuery で

$(".deleteRecord").クリック(関数() {
    var id = $(this).attr("recordID");
    ...
});
于 2012-10-01T13:58:51.277 に答える
-1

そうあるべきです.recordId、そうではありませんrecordId

$thevalueIwanttoSave = $(this).closest('.recordId').val();
    alert($thevalueIwanttoSave);
于 2012-10-01T13:59:43.257 に答える
-1

.クラス recordId を持つ要素を選択するには、a を使用する必要があります。また、 text() を使用して値を取得します。

$thevalueIwanttoSave = $(this).siblings('.recordId').text();
alert($thevalueIwanttoSave);
于 2012-10-01T14:01:35.407 に答える