Неопределенный индекс: идентификатор при попытке выбрать из идентификатора - PullRequest
0 голосов
/ 25 июня 2019

Ошибка:

Примечание: неопределенный индекс: id в C: \ wamp64 \ www \ app \ Form_Edit_Appt.php в строке 16 Примечание: неопределенный индекс: id в C: \ wamp64 \ www \ app \ Form_Edit_Appt.php в строке 33

В строке 16 я определяю: $ ID = $ _POST ['id']; Строка 33 - это SELECT, где я пытаюсь использовать $ ID = $ _POST ['id'] в select вместо вызова новой переменной В строке 38 я использую переменную I se в строке 16

Я использую AJAX из моего индексного файла для передачи идентификатора в мою форму PHP, которую затем использую в операторе select для генерации некоторого содержимого. Всякий раз, когда я пытаюсь получить переменную, я получаю неопределенную ошибку индекса. Я прочитал другие связанные вопросы и попытался определить тип данных как JSON, попробовал несколько изменений синтаксиса, но просто продолжаю получать это. Вот мой сценарий для загрузки формы с последующей отправкой данных с помощью ajax (я попытался изменить их порядок безрезультатно):

$('a.edit_appt').on("click", function() {
  $('.appt_menu').addClass('hidden');
  var id = event.id;

  $('#modalwindow').load('Form_Edit_Appt.php').addClass('show');
  $('.backdropper').addClass('show');

  $.ajax({
    url: 'Form_Edit_Appt.php',
    type: 'POST',
    dataType: 'json',
    data: {
      'id': id
    },
    success: function(data) {
      calendar.fullCalendar('refetchEvents');
      alert("success");
    }
  });
});

Я также попытался добавить предупреждение id, чтобы проверить его правильность (и оно есть), а также определить id как новую переменную, но без разницы.

Вот мой вызов данным и мое использование:

В моем первом операторе выбора я вызываю идентификатор в конце, но вызываю его непосредственно из поста, во втором я вызываю его из своей переменной. два метода, тот же результат. Я также попробовал функцию isset id, но не повезло.

$ID = $_POST['id'];

$apquery = "
        SELECT id, events.PersonID, CONCAT('(ID: ',events.PersonID,') ',ForeName,' ',SurName) AS 'patient', CAST(start_event AS date), CAST(end_event AS date), CAST(start_event AS time), CAST(end_event AS time), appt_status, Appt_Type, background_color, notes, events.Appt_Type_ID, events.appt_status_ID FROM `events` INNER JOIN tbl_appt_status AS status ON events.appt_status_ID = status.Appt_status_ID INNER JOIN tbl_appt_types AS type ON events.Appt_Type_ID = type.Appt_Type_ID INNER JOIN tbl_contacts AS contact ON events.PersonID = contact.PersonID WHERE id='".$_POST['id']."'
         ";
$result11 = mysqli_query($connect, $apquery);

$apquerytwo = "
        SELECT id, events.PersonID, CONCAT('(ID: ',events.PersonID,') ',ForeName,' ',SurName) AS 'patient', CAST(start_event AS date), CAST(end_event AS date), CAST(start_event AS time), CAST(end_event AS time), appt_status, Appt_Type, background_color, notes, events.Appt_Type_ID, events.appt_status_ID FROM `events` INNER JOIN tbl_appt_status AS status ON events.appt_status_ID = status.Appt_status_ID INNER JOIN tbl_appt_types AS type ON events.Appt_Type_ID = type.Appt_Type_ID INNER JOIN tbl_contacts AS contact ON events.PersonID = contact.PersonID WHERE id=.$id.
         ";
$result12 = mysqli_query($connect, $apquerytwo);

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Вы делаете два AJAX-запроса.Первый происходит от .load() (который является просто ярлыком для вызова $.ajax(), который записывает HTML-ответ в указанный элемент), который не имеет параметров POST;второе происходит от $.ajax(), что делает.

Вы должны сделать один запрос AJAX, который делает все, что вы хотите.Вы можете предоставить параметр данных для .load(), а также функцию обратного вызова.

$('#modalwindow').load('Form_Edit_Appt.php', {id: id}, function() {
    $("#modalwindow, .backdropper").addClass("show");
    calendar.fullCalendar('refetchEvents');
});
0 голосов
/ 25 июня 2019

«Всякий раз, когда я пытаюсь получить переменную, я получаю неопределенную ошибку индекса», вы не публикуете точную ошибку (всегда публикуете всю точную ошибку). В основном это означает, что в вашем массиве $ _GET нет ['id'] ,

В этом случае вам также следует использовать mysqli_real_escape_string (), чтобы очистить любые записи / получить данные перед отправкой и / или пройти весь путь и передать данные в качестве параметров в хранимые функции в mysql для защиты от внедрения mysql.

Всегда используйте «isset ($ VAR ['xxx'])» для всего, что на самом деле не может быть установлено.

/ u / sscotti верно, что ваша вторая попытка искажена, поскольку у вас не должно быть точек для конкатенации в запросе, если вы не заканчиваете строку сначала двойными кавычками и, конечно, ваши переменные чувствительны к регистру, и вы использовали это в UC второй раз, но LC первый раз, поэтому они не совпадают.

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