Javascript 如何使用事件单击更改php数据库值

Javascript 如何使用事件单击更改php数据库值,javascript,php,jquery,fullcalendar,fullcalendar-3,Javascript,Php,Jquery,Fullcalendar,Fullcalendar 3,因此,基本上我有一个事件,我想在单击它时更改数据库中该事件的值。想法是这样的(此代码不起作用) event单击:函数(calEvent、jsEvent、view)[ { location.href=“update_task.php?id=”; },] 更新任务代码 <?php require_once 'conn.php'; if($_GET['id'] != ""){ $id = $_GET['id']; $conn->query("UPDATE `task` S

因此,基本上我有一个事件,我想在单击它时更改数据库中该事件的值。想法是这样的(此代码不起作用)

event单击:函数(calEvent、jsEvent、view)[
{
location.href=“update_task.php?id=”;
},]
更新任务代码

<?php
require_once 'conn.php';
if($_GET['id'] != ""){
    $id = $_GET['id'];
    $conn->query("UPDATE `task` SET `status` = 'Done' WHERE `id` = $id") or die(mysqli_errno());
    header('location: index.php');
}
?>


更新任务中的代码正在工作,因为我在常规页面中进行了测试,fullcalendar中的代码不工作。提前感谢。

您打印的
位置href
url错误

改变

location.href=“update_task.php?id=“”。$fetch['id']”


location.href=“update_task.php?id=”

实际上,您并没有准确地说明出了什么问题,但我可以看出,您使用“eventClick”回调所做的一切毫无意义。它将尝试为查询结果中的每个事件生成一个
location.href
命令。这些都将作为一系列连续命令一个接一个地添加到JavaScript中。但是
eventClick
只定义了一次…因此这意味着它将尝试同时导航到所有事件

此外,您将PHP代码放在了错误的位置,因此以一些无效的JavaScript结尾。完成的JS将如下所示:

eventClick: function(calEvent, jsEvent, view)
  { location.href = "update_task.php?id=1"; }
  { location.href = "update_task.php?id=2"; }
  { location.href = "update_task.php?id=3"; }
  { location.href = "update_task.php?id=4"; }
  { location.href = "update_task.php?id=5"; }
这显然是胡说八道,可能会产生语法错误

即使您做得正确,最终完成的JavaScript代码也会如下所示:

eventClick: function(calEvent, jsEvent, view) {
  location.href = "update_task.php?id=1";
  location.href = "update_task.php?id=2";
  location.href = "update_task.php?id=3";
  location.href = "update_task.php?id=4";
  location.href = "update_task.php?id=5";
}
显然,这a)没有用处,b)无论如何也不会起作用。您将始终导航到第一个事件,因为这将是第一个打印的location.href命令

结论是:您不能用PHP实现此功能,因为当PHP运行时,您在服务器上生成页面时,您无法知道将单击哪个事件,因此无法像这样提前设置ID

幸运的是,提供了
calEvent
参数,其中包含所单击事件的详细信息。假设在JSON事件数据中,您向fullCalendar提供每个事件的
id
,则可以使用此值来构建已单击的特定事件的URL:

eventClick: function(calEvent, jsEvent, view) {
  location.href = "update_task.php?id=" + calEvent.id;
}

location.href=“update_task.php?id=”将fullcalendar变为白色页面,因此它有一个错误。编辑代码我相当确信,您在那里混合php和javascript的方式不会像预期的那样工作。你能添加实际的代码吗?可能是重复的。它变成了一个白色的页面。可能是语法错误。请查看页面源代码并检查url是否正确打印。确保变量
$fetch['id']
已定义。如何定义fetch。是否从数据库中获取记录并打印其值?否。仅在事件中。事件:[{title:'',description:'',start:'',end:'',},
eventClick: function(calEvent, jsEvent, view) {
  location.href = "update_task.php?id=" + calEvent.id;
}