Вы на самом деле не сказали точно, что происходит, но я вижу, что то, что вы делаете с помощью обратного вызова «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";
}
Ясно, что это а) бесполезно и б) не будет работать в любом случае. Вы просто всегда будете переходить к первому событию, так как это будет первая команда location.href, которая будет напечатана.
Вывод таков: вы не можете реализовать эту функцию с помощью PHP, потому что в то время, когда PHP работает и вы генерируете свою страницу на сервере, у вас нет возможности узнать, на каком событии будет щелкнуть , так что вы не можете установить идентификатор заранее, как это.
К счастью, обратный вызов eventClick предоставляет параметр calEvent
, содержащий сведения о событии, по которому был выполнен щелчок. Предполагая, что в ваших данных события JSON вы предоставляете id
каждого события для fullCalendar, вы можете использовать это значение вместо этого, чтобы создать URL-адрес определенного события, по которому щелкнули:
eventClick: function(calEvent, jsEvent, view) {
location.href = "update_task.php?id=" + calEvent.id;
}