Javascript 执行AJAX请求从数据库检索数据的正确方法
我有一个数据库,里面有一个表。 表中有公司列和时间列,还有其他一些列,但这两个列很重要。 因此,用户通过填写表单进行预约。 在表格中,我有两个s-公司和时间,所以他从两个选项中进行选择。 他点击一个按钮,表单被存储在数据库中。 如何使用AJAX检索所有正在使用的小时,然后相应地禁用它们。 例如:我从公司和时间下拉列表中选择了诺基亚,进行了预约。现在您想与诺基亚进行预约,但9:30时间已被禁用,因为该时间已被使用。 在这方面使用AJAX的正确方法是什么: 这是我的结构Javascript 执行AJAX请求从数据库检索数据的正确方法,javascript,c#,jquery,html,ajax,Javascript,C#,Jquery,Html,Ajax,我有一个数据库,里面有一个表。 表中有公司列和时间列,还有其他一些列,但这两个列很重要。 因此,用户通过填写表单进行预约。 在表格中,我有两个s-公司和时间,所以他从两个选项中进行选择。 他点击一个按钮,表单被存储在数据库中。 如何使用AJAX检索所有正在使用的小时,然后相应地禁用它们。 例如:我从公司和时间下拉列表中选择了诺基亚,进行了预约。现在您想与诺基亚进行预约,但9:30时间已被禁用,因为该时间已被使用。 在这方面使用AJAX的正确方法是什么: 这是我的结构 function Make
function MakeApp() {
var AppWith = $("#CompanySelect").val();
var AppTime = $("#TimeSelect").val();
var Yritys = $("#YritysNtext").val();
var Henkilonimi = $("#HenkilonimiText").val();
var Asema = $("#AsemaText").val();
var PuhelinNR = $("#PuhelinText").val();
var EMail = $("#EMailText").val();
var Keskustelun = $("#KeskustelunText").val();
var app = { AppWithYritys: AppWith, AppTime: AppTime, YritysN: Yritys, Henkilonimi: Henkilonimi, Asema: Asema, PuhelinNR: PuhelinNR, EMail: EMail, Keskustelun: Keskustelun }
var request = $.ajax({
type: "POST",
data: JSON.stringify(app),
url: "/api/Appointments",
contentType: "application/json",
dataType: "html"
});
request.done(function (podaci) {
if (podaci != -1) {
alert("You Have successfully made an appointment");
location.assign("BookAppointment.html");
}
else {
$("#p1").html("Greska pri unosu");
}
});
request.fail(function (gr) {
$("#p1").html(gr.statusText);
});
};
实际上,管理数据和数据库是服务器的工作。AJAX只是一种将信息同步发送到服务器的方法。您可以做的是,当您加载页面时,使用AJAX只检索占用的时间,在select中禁用它们的选项,并且每当您的服务器收到请求时,它都会检查公司是否有可用的位置和时间 很抱歉,我没有你的密码,因为我觉得很清楚。如果不是,请随意评论,我会尽力帮助你 编辑 这里我有几行代码,它不完整,因为我们缺少一些信息,但它是主要的算法 您的服务器:
{GET}
public void getUnavailable() {
//get all times from Databases for today's date.,
//Encode them in JSON.
//returns the times.
}
假设您的JSON如下所示:
[
{
"company": "Nokia",
"times": [
"9:30",
"10:00",
"10:30"
]
}
]
您需要检索JSON并对其进行解析,以禁用所选select中的时间:
这是我所能做的最多的信息。处理这一问题的真正方法,是使用/api/appoints背后的任何web技术,返回任何可用的约会。您的变量名对我来说没有多大意义,所以请尝试理解下面的代码的作用
$.get( "/api/Appointments", JSON.stringify(app) )
.done(function( data ) {
//note that the "data" variable holds your returned appointments
//I would return a json document of available appointment times to filter your select
//sample json would look something like this
// { "availableAppointments": ["9:30 AM", "10:00 AM"] }
// and then iterate through available appointments and populate your select
for(var i = 0; i < data.availableAppointments.length; i++){
$('#yourSelectId').append($('<option>', {
value: 930,
text: data.availableAppointments[i]
}));
}
});
请注意,此代码的语法可能不正确
以下是一些帮助我回答这个问题的链接,以防它们有所帮助
AJAX与从数据库检索数据无关。这一切都发生在/api/约会的背后。这里到底发生了什么问题?我想你不明白我的问题。我正在尝试获取所有正在使用的小时数,具体取决于所选的公司,然后禁用它。还是你明白了?我不能用Ajax来做这个?那我怎么能通过控制器来做呢@DavidIt似乎更可能是您不理解您的问题。您的代码中当前不起作用的是什么?您正在尝试的具体技术操作是什么?它是如何不按预期工作的?我们真的无法满足高层次的业务需求,因此诸如所有使用时间或所选公司之类的术语在这里毫无意义。但是如果你有一个具体的技术问题,我们可以帮助你解决。这不是一个业务需求,实际上是一个实践项目,有3个公司和3个小时。代码正在工作,我只是不知道我必须添加什么,以便应用程序可以从9:00、9:30、10:00的巨大列表中获取所有小时,然后禁用正在使用的时间?有可能吗?再说一次,您的业务需求无论是否来自实际业务都是无关紧要的,对技术来说没有任何意义。关注具体的技术问题。你从哪里得到这些数据?数据是什么样子的?您正在对数据执行哪些操作?仅仅给我们需求并期望我们为您编写代码并不会让您走得更远。至于是否可能,是的,可以从数据库检索数据并基于该数据执行逻辑。但在你的问题中没有这一点。我理解你在理论上说的话,但我的实践很糟糕,我仍在努力学习,这就是实践。如果你不想为代码费心,你可以建议一些教程,这会很有帮助吗?我心里没有教程,但我会尝试给你一些你能理解的代码。给我几分钟。这可能会有所帮助,只是JSON的一部分,我不太明白,这是我填写的方式吗?并获取当前公司的选择,我应该getElementbyI.SelectedIndex?并在getUnavailable中创建一个列表并用数据库中已经存在的时间填充它?然后返回列表?没关系,别担心,编程不是一个容易的领域,但你会看到它是一个有趣的领域!
$.get( "/api/Appointments", JSON.stringify(app) )
.done(function( data ) {
//note that the "data" variable holds your returned appointments
//I would return a json document of available appointment times to filter your select
//sample json would look something like this
// { "availableAppointments": ["9:30 AM", "10:00 AM"] }
// and then iterate through available appointments and populate your select
for(var i = 0; i < data.availableAppointments.length; i++){
$('#yourSelectId').append($('<option>', {
value: 930,
text: data.availableAppointments[i]
}));
}
});