вставка нескольких значений флажков с использованием цикла foreach, jquery и ajax - PullRequest
0 голосов
/ 23 октября 2018

У меня есть флажки для полей ввода,

<input value="1" name="rubric_chkbox[]" type="checkbox" class="checkbox" />
<input value="2" name="rubric_chkbox[]" type="checkbox" class="checkbox" />
<input value="3" name="rubric_chkbox[]" type="checkbox" class="checkbox" />

Моя проблема заключается в том, что в моем запросе вставки цикла foreach, если я установил все флажки, checked checkboxes

Он просто вставит значения 1 и 2 в мою базу данных, он игнорирует значение 3.

Я использую jquery и ajax для получения флажков.

var rubricChkbox = new Array();
    $(".rubricChkbox:checked").each(function() {
         rubricChkbox.push($(this).val()); 
    });

    console.log(rubricChkbox);

    $.ajax({
        url: "Queries/save.php",
        type: "POST",
        data: {
          "rubricChkbox":rubricChkbox
        },
        success: function(yey){
          console.log(yey);
          alert(yey);
        }
      });
  });
});

И это мое сохранение.php,

if (isset($_POST['rubricChkbox']) || isset($_POST['uncheked']) || isset($_POST['user_id'])) {
$rubric_value = $_POST['rubricChkbox'];
    $IDuser = $_POST['user_id'];

        foreach($rubric_value as $rubric_check) {

          $sql_check = "SELECT raw_selected_rubric FROM rubric_selected INNER JOIN cmat_composition ON rubric_selected.ID_cmat = cmat_composition.ID_cmat WHERE rubric_selected.ID_users = '$IDuser' AND raw_selected_rubric = '$rubric_check' 
          AND rubric_selected.Saved = '1'";
          $result_check = mysqli_query($conn,$sql_check);

          if (mysqli_num_rows($result_check) <= 0){

            $sql_raw = "INSERT INTO rubric_selected (raw_selected_rubric, Saved, ID_users)

          VALUES  ('$rubric_check', '1', '$IDuser')";

          mysqli_query($conn, $sql_raw); 


          }

        }

Что я пропустил?Спасибо.

1 Ответ

0 голосов
/ 23 октября 2018

Лучший совет для вас заключается в том, что если что-то не работает так, как вы хотите, вы должны проверять, что происходит на каждом этапе, пока не найдете проблему.Это относится не только к этому вопросу, но и к любой проблеме программирования (и многим другим).

В этом случае

  • Верны ли данные, отправленные из браузера?У вас уже есть заявление console.log(rubricChkbox);.Вы проверили это значение?Почему вы не включили его в вопрос?
  • Получены ли правильные данные в сценарии PHP?Используйте что-то вроде print_r ($_POST);.
  • SQL INSERT зависит от результата SQL SELECT.Проверяли ли вы, что это условие истинно, потому что иначе ваш код даже не будет пытаться вставить.
  • Возвращает ли оператор INSERT какую-то ошибку?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...