Member 13262839 Ответов: 2

Как я могу убедиться, что один и тот же пользователь не должен быть добавлен дважды в jquery?


Я использую два div (s). В первом div все пользователи отображаются на странице с опцией кнопки "Добавить". Добавляя пользователей, они добавляются во второй div с помощью jQuery. Но я хочу убедиться, что они не будут добавлены дважды. Я хочу реализовать условие, чтобы проверить, если пользователь уже добавлен, то он не должен быть добавлен или кнопка должна быть отключена. Я пишу свои html-и css-коды ниже. На самом деле я делаю это в wordpress, но проблема в jquery. У меня есть шаблон страницы с именем users.
/*
Template Name: Users
*/
?>

.container{
  width: 800px;
}
.left{
  float:left;
  width: 300px;
  background: ##66CDAA;
  border-right: thick-solid #fff;
}
.right{
  overflow: hidden;
  width: 500px;
  background: powderblue;
}

<?php
 get_header(); ?>
 <div id="primary" class="content-area">
   
   <div class="container">
   <div class="left" id="xyz">
     
       
         
         
         
       
     <?php
      $sql ="SELECT * FROM wp_users";
      $results = $wpdb->get_results($sql) or die(mysql_error());
      foreach( $results as $result ){ ?>
        
          
          
          
        
        <?php
          }
        ?>
        <table><tbody><tr><th>Name</th><th>Gravatar Image</th><th>Add to Div</th></tr><tr><td id="<?php echo $result->ID; ?>">
          <?php echo $result->display_name; ?>
          </td><td>
          <?php echo get_avatar( $result->user_email, 42); ?>
          </td><td>
          <p>Added</p>
          </td></tr></tbody></table>
 </div>
 <div class="right">
   <p>Added Users</p>
   
   
     
   
   <table class="table"><tbody><tr><th>Name</th><th>
     </th><th>Image</th></tr></tbody></table>
 </div>
 </div>



     </div>
    <?php get_footer(); ?>


Что я уже пробовал:

У меня есть файл jquery, с помощью которого я добавляю пользователя из первого div в другой. Но проблема в том, что я хочу проверить условие перед добавлением пользователя. Если пользователь уже добавлен, то он не должен быть добавлен снова, вместо этого должно быть предложено предупреждение о том, что"пользователь уже добавлен". Мой код находится ниже

(function($) {
      $(document).ready(function() {
      $(".submit").on("click", function(e){
      e.preventDefault();
      var id = $(this).data('id');
      var name = $(this).data('name');
      var image = $(this).data('image');

       if($('.table td#' + id).length) {
       //Also tried $('.table').find('td').attr('id'); but undefined is the result
         alert("added");
        } else {
          $('.table').append('' + name + '<br>');
      //  }
  })
})
})(jQuery);

2 Ответов

Рейтинг:
2

W∴ Balboos, GHB

Я заметил ваш SQL и, возможно, поторопился.

Я бы сделал это так, чтобы удалить запись из первого div, когда я копирую ее во второй div. Думайте об этом как о списках множественного выбора (настройка панели инструментов Windows?) где вы дважды щелкаете и элемент, и он переходит из одной области в другую. Вы не можете выбрать его дважды, потому что он находится либо в одной области, либо в другой.

Отдельные имена могут быть в отдельных div или spans своих собственных, каждый с идентификатором. Или стол внутри каждого div.

Вы можете перекрасить их, чтобы знать, что вы выбрали, отключить для них "событие выбора" или любое другое количество вещей, в зависимости от того, что вы хотите увидеть.

Или, примитивно, вы можете отслеживать Ваши выборы в массиве и искать его перед завершением процедуры копирования.


Рейтинг:
0

W∴ Balboos, GHB

Вы сами ответили на свой вопрос. Убедитесь, что они не добавляются дважды.

Вы можете (1) проверить базу данных на их существование [например, (COUNT (*) > 0)] и/или (2) Добавить УНИКАЛЬНЫЙ ограничение на соответствующие поля в вашей базе данных, после чего вы обработаете возврат ошибки.

Вы также должны подумать: как вы определяете пользователя как одного и того же? В реальном программировании это не всегда простое решение. Например, у людей есть общие имена. Они могут выбрать один и тот же Аватар. Они могут создавать новое имя пользователя, но это один и тот же человек.


Member 13262839

Проблема не в том, чтобы вставить пользователей из базы данных. На самом деле я добавляю пользователей из одного div в другой div с помощью кнопки с помощью jquery. Как только я добавлю пользователя, я могу добавить его дважды, нажав одну и ту же кнопку. Поэтому я хочу проверить условие, что если пользователь уже добавлен, то должно быть предложено предупреждение о том, что "пользователь уже добавлен".