为了账号安全,请及时绑定邮箱和手机立即绑定

未定义索引:每当尝试从 id 中选择时的 id

未定义索引:每当尝试从 id 中选择时的 id

精慕HU 2021-07-13 17:01:12
错误:注意:未定义索引:C:\wamp64\www\app\Form_Edit_Appt.php 第 16 行中的 id 注意:未定义索引:C:\wamp64\www\app\Form_Edit_Appt.php 中第 33 行中的 id第 16 行是我定义的地方: $ID = $_POST['id']; 第 33 行是 SELECT,我尝试在选择中使用 $ID = $_POST['id'] 而不是调用新变量第 38 行是我在第 16 行使用的变量我正在使用我的索引文件中的 AJAX 将 ID 传递给我的 PHP 表单,然后我在选择语句中使用它来生成一些内容。每当我尝试获取变量时,都会收到未定义的索引错误。我已经阅读了其他相关问题,并尝试将数据类型定义为 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 定义为一个新变量,但没有区别。这是我对数据的调用和我的用法:在我的第一个 select 语句中,我在最后调用了 id,但直接从 post 调用它,在第二个语句中,我从我的变量中调用它。两种方法,同样的结果。我也尝试了 idisset 函数,但没有运气。$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);
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您正在发出两个 AJAX 请求。第一个来自.load()(它只是$.ajax()将响应 HTML 写入指定元素的调用的快捷方式),它没有任何 POST 参数;第二个来自$.ajax(),确实如此。


您应该执行一个 AJAX 请求来完成您想要的所有操作。您可以向 提供数据参数.load(),也可以提供回调函数。


$('#modalwindow').load('Form_Edit_Appt.php', {id: id}, function() {

    $("#modalwindow, .backdropper").addClass("show");

    calendar.fullCalendar('refetchEvents');

});


查看完整回答
反对 回复 2021-07-15
?
白板的微信

TA贡献1883条经验 获得超3个赞

“每当我尝试获取变量时,我都会收到未定义的索引错误”,您没有发布确切的错误(始终发布整个确切的错误)这主要意味着您的 $_POST 数组中没有 ['id']。

在这种情况下,您还应该使用 mysqli_real_escape_string() 在提交之前清理任何 post/get 数据和/或一直将数据作为参数提交给 mysql 中的存储函数,以防止 mysql 注入。

始终对可能未设置的任何内容使用“isset($VAR['xxx'])”。

/u/sscotti 是正确的,您的第二次尝试格式错误,因为如果您没有先用双引号结束字符串,那么您不应该在查询中使用连接点,当然您的变量区分大小写,并且您在 UC 中使用它第二次但第一次 LC 所以他们不匹配。


查看完整回答
反对 回复 2021-07-15
  • 2 回答
  • 0 关注
  • 297 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号