Javascript 重定向到具有从AJAX检索的ID的操作
目前有一个应用程序使用AJAX和FullCalendar 我希望用户能够单击此日历上的项目,此时会出现一个对话框,其中有一个按钮显示“查看详细信息”。然后,这会将用户带到该特定事件页面 我让对话框正常工作,但对于如何从AJAX调用中获取ID并将其放入Javascript函数以重定向到该操作,我感到非常困惑 我想我知道如何让它进入那个动作,但我不知道如何从AJAX调用中获取ID 这是我的完整日历,有效:Javascript 重定向到具有从AJAX检索的ID的操作,javascript,ajax,Javascript,Ajax,目前有一个应用程序使用AJAX和FullCalendar 我希望用户能够单击此日历上的项目,此时会出现一个对话框,其中有一个按钮显示“查看详细信息”。然后,这会将用户带到该特定事件页面 我让对话框正常工作,但对于如何从AJAX调用中获取ID并将其放入Javascript函数以重定向到该操作,我感到非常困惑 我想我知道如何让它进入那个动作,但我不知道如何从AJAX调用中获取ID 这是我的完整日历,有效: <script> $(document).ready(function
<script>
$(document).ready(function () {
var events = [];
$.ajax({
type: "GET",
url: "/Appointments/GetEvents",
success: function (data) {
$.each(data, function (i, v) {
events.push({
details: v.DetailsOfAppointment,
date: moment(v.DateOfAppointment),
room: v.RoomType,
confirmed: v.Confirmed,
colour: v.ThemeColour,
church: v.Church.Name,
parishAdminName: v.Admins.AdministratorName,
parishAdminUser: v.Admins.AdminUsername,
parishAdminId: v.Admins.AdministratorId,
fee: v.Fee,
id: v.AppointmentId
});
})
GenerateCalender(events);
},
error: function (error) {
alert("failed");
console.log(error);
}
})
function GenerateCalender(events) {
$('#calendar').fullCalendar({
contentHeight: 500,
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek'
},
defaultView: 'agendaWeek',
timeFormat: 'HH:mm',
eventLimit: true,
eventColor: events.ThemeColour,
events: events,
aspectRatio: 2.2,
minTime: "09:00:00",
maxTime: "17:00:00",
eventRender: function (event, element) {
if (event.fee == null) {
if (event.confirmed == false) {
element.css('background-color', '#FF0000');
element.css('border-color', '#FF0000');
}
else {
element.css('background-color', '#008000');
element.css('border-color', '#008000');
}
}
else
{
element.css('background-color', '#0000FF');
element.css('border-color', '#0000FF');
}
},
eventClick: function (calEvent, jsEvent, view) {
$('#myModal #details').text(calEvent.details);
var $details = $('<div/>');
if (calEvent.fee != null) {
$details.append($('<p/>').html('<b>Date of Ceremony : </b>' + calEvent.date.format("DD-MMM-YYYY HH:mm a")));
}
else {
$details.append($('<p/>').html('<b>Date of Appointment : </b>' + calEvent.date.format("DD-MMM-YYYY HH:mm a")));
}
if (calEvent.end != null) {
$details.append($('<p/>').html('<b>End:</b>' + calEvent.end.format("DD-MMM-YYYY HH:mm a")));
}
$details.append($('<p/>').html('<b>Details : </b>' + calEvent.details));
$details.append($('<p/>').html('<b>Church Name : </b>' + calEvent.church));
if (calEvent.fee == null) {
if (calEvent.room != null) {
$details.append($('<p/>').html('<b>Room : </b>' + calEvent.room));
}
else {
$details.append($('<p/>').html('<b>Room Not Confirmed'));
}
}
$details.append($('<p/>').html('<b>Parish Admin : </b>' + calEvent.parishAdminName));
if (calEvent.confirmed == true)
{
$details.append($('<p/>').html('<b>Status : Confirmed </b>'));
}
else
{
$details.append($('<p/>').html('<b>Status : Not Confirmed </b>'));
}
$('#myModal #pDetails').empty().html($details);
$('#myModal').modal();
},
eventDrop: function (event) {
var data = {
AppointmentID: event.id,
};
}
})
}
})
$('#viewDetails').click(function (id) {
window.location.href = '/Appointments/Details/' + id;
}
</script>
$(文档).ready(函数(){
var事件=[];
$.ajax({
键入:“获取”,
url:“/appoints/GetEvents”,
成功:功能(数据){
$。每个(数据、功能(i、v){
事件。推({
详情:v.预约详情,
日期:时刻(v.申请日期),
房间:v.RoomType,
证实的,证实的,
颜色:v.ThemeColor,
教堂:v.church.Name,
parishadmin名称:v.Admins.AdministratorName,
parishadmin用户名:v.Admins.AdminUsername,
parishAdminId:v.Admins.AdministratorId,
费用:v.费用,
id:v.任命id
});
})
生成贷方(事件);
},
错误:函数(错误){
警报(“失败”);
console.log(错误);
}
})
功能生成贷方(事件){
$(“#日历”).fullCalendar({
身高:500,
标题:{
左:“上一个,下一个今天”,
中心:'标题',
右图:“月,agendaWeek”
},
defaultView:'agendaWeek',
时间格式:“HH:mm”,
eventLimit:对,
eventColor:events.ThemeColor,
事件:事件,
方面:2.2,
minTime:“09:00:00”,
maxTime:“17:00:00”,
eventRender:函数(事件,元素){
如果(event.fee==null){
如果(event.confirmed==false){
css('background-color','#FF0000');
css('border-color','#FF0000');
}
否则{
css('background-color','#008000');
css('border-color','#008000');
}
}
其他的
{
css('background-color','#0000FF');
css('border-color','#0000FF');
}
},
eventClick:函数(calEvent、jsEvent、view){
$(“#myModal#details”).text(calEvent.details);
变量$details=$('');
如果(calEvent.fee!=null){
$details.append($('').html('仪式日期:'+calEvent.Date.format(“DD-MMM-YYYY HH:mm a”));
}
否则{
$details.append($('').html('约会日期:'+calEvent.Date.format(“DD-MMM-YYYY HH:mm a”));
}
如果(calEvent.end!=null){
$details.append($('').html('End:'+calEvent.End.format(“DD-MMM-YYYY HH:mm a”));
}
$details.append($('').html('details:'+calEvent.details));
$details.append($('').html('Church Name:'+calEvent.Church));
如果(calEvent.fee==null){
if(calEvent.room!=null){
$details.append($('').html('Room:'+calEvent.Room));
}
否则{
$details.append($(“”).html(‘房间未确认’);
}
}
$details.append($('').html('Parish Admin:'+calEvent.parishAdminName));
如果(calEvent.confirm==true)
{
$details.append($('').html('状态:已确认');
}
其他的
{
$details.append($('').html('状态:未确认');
}
$('#myModal#pDetails').empty().html($details);
$('#myModal').modal();
},
eventDrop:函数(事件){
风险值数据={
任命id:event.id,
};
}
})
}
})
$(“#查看详细信息”)。单击(函数(id){
window.location.href='/appoints/Details/'+id;
}
我知道事情很简单,但我真的无法思考
编辑如果有帮助,这是我的按钮
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title"><span id="eventTitle"></span></h4>
</div>
<div class="modal-body">
<p id="pDetails"></p>
<button id="viewDetails" class="btn btn-default" style="margin-right:5px;">
View Details
</button>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
&时代;
查看详细信息
接近
不必将重定向设置为javascript操作,您可以将#viewDetails链接的HREF指向您想要的页面吗?如果它当前是一个按钮,您可以将其设置为一个类似按钮的链接
例如,在构建并显示模式的脚本末尾,您可以尝试类似于t的方法
$('#myModal #pDetails').empty().html($details);
$('#viewDetails').attr("href", '/Appointments/Details/' + calEvent.id);
$('#myModal').modal();
<div class="modal-body">
<p id="pDetails"></p>
<a href="" id="viewDetails" class="btn btn-default" style="margin-right:5px;">
View Details
</a>
</div>