При наведении на кнопку изменяется переменная для запроса SQL, чтобы показать правильные данные - PullRequest
0 голосов
/ 25 февраля 2019

Моя цель состоит в том, чтобы иметь несколько кнопок, и при наведении на них одной кнопки появится div с информацией, относящейся к кнопке, над которой пользователь наводит курсор.

Каждая кнопка создается из моей базы данных, и каждая кнопка имеет свое значение.

Значение кнопки - это значение, которое я использую в своем запросе SQL, чтобы показать правильные данные, принадлежащие этой кнопке.

Моя проблема в том, что я использую javascript и AJAX для получения значения кнопки от кнопки, когда пользователь наводит на нее курсор, что означает, что когда всплывает информационный div, значение, пойманное мной с помощью AJAX, не обновляется, покастраница обновлена.

Я далеко не эксперт, и я уверен, что сделал это намного сложнее, чем нужно:

1) Я распечатываю кнопки из своей базы данных:

while($row = mysqli_fetch_array($result)) {
          echo ' <input type="text" id="submitfakta" name="submitted-btn" value="'.$row['Name'].'">

2) Затем я использую Javascript и AJAX, чтобы получить значение кнопки при наведении курсора:

<script>
   $('#submitfakta').live('mouseover mouseout', function(e) {
     if (e.type == 'mouseover') {
         var idAttr = $(this).attr('value');
         //alert($(this).attr('id'));
         $.ajax({
             type: "POST",
             url: 'abu.php',
             data: {idAttr : idAttr },
             success: function(data)
             {
return data;
             }
         });

     }
   });
   </script>

3) информационный элемент выскакивает, используя просто css, устанавливая display: none и когда янаведите курсор на кнопку, для которой установлен показ div: block

4) В abu.php я пытался использовать SESSION, чтобы вернуть значение кнопки на мою страницу, и использовать для запроса:

   $_SESSION["abu"] = $_POST["idAttr"];

Но это плохое решение, потому что сессия обновляется не сразу при наведении курсора, а сначала после обновления страницы.

1 Ответ

0 голосов
/ 25 февраля 2019

Сначала используйте класс

while($row = mysqli_fetch_array($result)) {
      echo ' <input type="text" class="submitfakta" name="submitted-btn" value="'.$row['Name'].'">

, а затем

   $('.submitfakta').on('mouseover', function() {
     var idAttr = $(this).attr('value');
     //alert($(this).attr('id'));
     $.ajax({
         type: "POST",
         url: 'abu.php',
         data: {idAttr : idAttr },
         success: function(data)
         {
            return data;
         }
     });
 });

Надеюсь, это сработает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...