jqueryで同じテーブル内の重複データを回避する

マフォルティス

オプションの選択に基づいてデータが追加されるテーブルがあります。問題は、データを複数回追加しないようにすることです。

オプションcolorデータの追加を選択sizeしてから、これまでのところオプションデータの追加も選択するとします

しかし、もう一度間違って選択colorした場合はカラーデータが再び表示されます。これは基本的に、これらのデータをバックエンドで送信したい瞬間まで問題はありません。同じIDを異なる値でフィルタリングするのは困難です。

質問は

この重複した追加を回避する方法はありますか?では、1color選択すると、データは1回だけ表示され、2回目は表示されませんか?

コード

HTML

<div class="mt-20 options" style="display:none">
    <div class="mb-20"><h4>Check mark your needed options only</h4></div>
    <table id="table" class="table table-bordered table-hover table-responsive">
        <thead>
            <th width="50" class="text-center">Check</th>
            <th class="text-center">Title</th>
            <th class="text-center">Price</th>
        </thead>
        <tbody>
        </tbody>
    </table>
</div>

JavaScript

<script>
    $(function(){
        $('select[name="options"]').on('change', function() {
            var addressID = $(this).val();
            if(addressID) {
                $.ajax({
                    url: '{{ url('admin/getoptions') }}/'+encodeURI(addressID),
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                        // $('div.options').empty();



                        // 2. Loop through all entries
                        var keys = ['title'];
                        data.forEach(function(row) {
                          var $row = $('<tr />');

                          $row.append('<td class="text-center" width="50"><label class="switch switch-small"><input type="checkbox" /><span><input class="form-control" type="text" name="optionID[]" value="'+row['id']+'"></span></label></td>');
                          keys.forEach(function(key) {
                            $row.append('<td>' + row[key] + '</td>');
                          });
                          $row.append('<td class="text-center"><input class="form-control" placeholder="if fill this price, the price will add to product price when user select it." type="number" name="optionPRICE[]"></td>');

                          $('#table tbody').append($row);
                        });
                        $("div.options").show();
                    }
                });
            }else{
                $('div.options').empty();
            }
        });
    });
</script>

それについて何か考えはありますか?

ラホスアルパッド

もちろん。最初は空の配列を作成できます。

var addresses = [];

アドレスを要求したときはいつでも、次のように配列内に格納します。

addresses.push(addressID);

次のように、ifを変更して、addressID真でまだ要求されていないかどうかを確認します。

if (addressID && (addresses.indexOf(addressID) < 0)) {

完全なコード:

<script>
    $(function(){
        var addresses = [];
        $('select[name="options"]').on('change', function() {
            var addressID = $(this).val();
            if (addresses.indexOf(addressID) < 0) {
            if(addressID) {
                addresses.push(addressID);
                $.ajax({
                    url: '{{ url('admin/getoptions') }}/'+encodeURI(addressID),
                    type: "GET",
                    dataType: "json",
                    success:function(data) {
                        // $('div.options').empty();



                        // 2. Loop through all entries
                        var keys = ['title'];
                        data.forEach(function(row) {
                          var $row = $('<tr />');

                          $row.append('<td class="text-center" width="50"><label class="switch switch-small"><input type="checkbox" /><span><input class="form-control" type="text" name="optionID[]" value="'+row['id']+'"></span></label></td>');
                          keys.forEach(function(key) {
                            $row.append('<td>' + row[key] + '</td>');
                          });
                          $row.append('<td class="text-center"><input class="form-control" placeholder="if fill this price, the price will add to product price when user select it." type="number" name="optionPRICE[]"></td>');

                          $('#table tbody').append($row);
                        });
                        $("div.options").show();
                    }
                });
            }else{
                $('div.options').empty();
            }
            }
        });
    });
</script>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

同じテーブルで不良/重複データを検索する

分類Dev

同じテーブル内で重複する日時の数(R)

分類Dev

MySQLでテーブルの重複を回避する方法

分類Dev

同じテーブルのデータで行を更新する

分類Dev

同じテーブルのデータでテーブルを更新する

分類Dev

同じデータベース内の異なるテーブルで数量と金額を乗算する

分類Dev

MySQLの複数のデータベースで同じテーブルを変更する方法

分類Dev

同じテーブル内の別の行からデータを見つけるために、1つの行でSQLQUERYを複数検索する

分類Dev

codeigniterの1つのテーブルで同じ名前の複数のデータを取得する

分類Dev

pytest:複数のテストで同じデータ構造に対する長い反復を回避します

分類Dev

テーブル内で同じデータをクエリするが、出力行の位置が異なる方法

分類Dev

laravelphpで同じデータのタブを複製する方法

分類Dev

同じテーブル内の以前のデータに基づいてSQLテーブルを更新する方法

分類Dev

特定のユーザーMySQLについて、同じテーブル内で重複する日付範囲を検索する

分類Dev

同じテーブル上の別のレコードを指すフィールドが必要ですか、それとも別のテーブルと重複データがある方がよいですか?

分類Dev

sql:テーブル行で同じIDを回避する方法

分類Dev

同じテーブルでデータを検索する

分類Dev

Room Dbのテーブルでデータの重複入力を回避するにはどうすればよいですか?

分類Dev

Room Dbのテーブルでデータの重複入力を回避するにはどうすればよいですか?

分類Dev

同じテーブルの2つの列で値が同じであるデータを検索する

分類Dev

SQL-同じテーブルのデータを比較する

分類Dev

同じテーブルの履歴データを比較する

分類Dev

Hibernate-JPAは、異なるケースで同じ名前の重複テーブルを生成します

分類Dev

SQL:同じテーブルで複数の値を取得する

分類Dev

複数のテーブルで同じ値を検索する

分類Dev

クエリで同じmysqlテーブルのデータを使用する

分類Dev

Jetpackのデータバインディングは同じクラスと同じファイル内の重複するクラスを生成します

分類Dev

同じ一意の識別子で重複データを更新する

分類Dev

ksqlテーブルのデータが重複しています| 同じROWKEY更新でksqlテーブルの行を更新するにはどうすればよいですか?

Related 関連記事

  1. 1

    同じテーブルで不良/重複データを検索する

  2. 2

    同じテーブル内で重複する日時の数(R)

  3. 3

    MySQLでテーブルの重複を回避する方法

  4. 4

    同じテーブルのデータで行を更新する

  5. 5

    同じテーブルのデータでテーブルを更新する

  6. 6

    同じデータベース内の異なるテーブルで数量と金額を乗算する

  7. 7

    MySQLの複数のデータベースで同じテーブルを変更する方法

  8. 8

    同じテーブル内の別の行からデータを見つけるために、1つの行でSQLQUERYを複数検索する

  9. 9

    codeigniterの1つのテーブルで同じ名前の複数のデータを取得する

  10. 10

    pytest:複数のテストで同じデータ構造に対する長い反復を回避します

  11. 11

    テーブル内で同じデータをクエリするが、出力行の位置が異なる方法

  12. 12

    laravelphpで同じデータのタブを複製する方法

  13. 13

    同じテーブル内の以前のデータに基づいてSQLテーブルを更新する方法

  14. 14

    特定のユーザーMySQLについて、同じテーブル内で重複する日付範囲を検索する

  15. 15

    同じテーブル上の別のレコードを指すフィールドが必要ですか、それとも別のテーブルと重複データがある方がよいですか?

  16. 16

    sql:テーブル行で同じIDを回避する方法

  17. 17

    同じテーブルでデータを検索する

  18. 18

    Room Dbのテーブルでデータの重複入力を回避するにはどうすればよいですか?

  19. 19

    Room Dbのテーブルでデータの重複入力を回避するにはどうすればよいですか?

  20. 20

    同じテーブルの2つの列で値が同じであるデータを検索する

  21. 21

    SQL-同じテーブルのデータを比較する

  22. 22

    同じテーブルの履歴データを比較する

  23. 23

    Hibernate-JPAは、異なるケースで同じ名前の重複テーブルを生成します

  24. 24

    SQL:同じテーブルで複数の値を取得する

  25. 25

    複数のテーブルで同じ値を検索する

  26. 26

    クエリで同じmysqlテーブルのデータを使用する

  27. 27

    Jetpackのデータバインディングは同じクラスと同じファイル内の重複するクラスを生成します

  28. 28

    同じ一意の識別子で重複データを更新する

  29. 29

    ksqlテーブルのデータが重複しています| 同じROWKEY更新でksqlテーブルの行を更新するにはどうすればよいですか?

ホットタグ

アーカイブ