将表单元素传递给javascript,然后运行jquery/ajax从DB中提取..phew

将表单元素传递给javascript,然后运行jquery/ajax从DB中提取..phew,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我正在尝试从表单中获取一个邮政编码,然后将其提交给javascript/jquery,然后javascript/jquery将使用该邮政编码从数据库中提取数据。我从w3schools复制粘贴的代码,并更改了一些名称,还引用了一些SO代码,以便从带有ID的submit按钮单击中获取表单元素 问题是search.php页面返回的内容没有显示在具有eventsReturned ID的标记中。另外,我不确定searchEvents()方法是否接收到zip 这是我到目前为止得到的感谢所有帮助一如既往: i

我正在尝试从表单中获取一个邮政编码,然后将其提交给javascript/jquery,然后javascript/jquery将使用该邮政编码从数据库中提取数据。我从w3schools复制粘贴的代码,并更改了一些名称,还引用了一些SO代码,以便从带有ID的submit按钮单击中获取表单元素

问题是search.php页面返回的内容没有显示在具有eventsReturned ID的标记中。另外,我不确定searchEvents()方法是否接收到zip

这是我到目前为止得到的感谢所有帮助一如既往:

index.php页面中的Javascript--


$(文档).ready(函数(){
$(“#searchEventsBtn”)。单击(函数(){
searchEvents($('#zip').val());
});
});
$(函数searchEvents(zip){
if(zip==null){
document.getElementById(“eventsReturned”).innerHTML=“在该邮政编码中找不到任何事件…”;
回来
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200){
document.getElementById(“eventsReturned”).innerHTML=this.responseText;
}
};
open(“POST”,“search.php”,true);
xmlhttp.send();
}
});
index.php页面--


所有类别
酒吧/夜总会
本地公共活动
仅限私人活动/邀请
餐厅/餐饮
体育/户外活动
$(函数(){
$('#startDate')。日期时间选择器({
格式:“YYYY-MM-DD”
});
$('#endDate')。日期时间选择器({
格式:“YYYY-MM-DD”
});
});

搜索
javascript/jquery调用的search.php页面--


好的,看来你对这类事情还不熟悉,所以我将尝试解释一些事情。首先,我看到您有jquery,但尝试使用纯javascript,因为您可能复制了它

Jquery可以使事情变得更简单,跨浏览器友好,这就是我们使用它的原因。因此,如果您想向服务器发送数据,而不是使用Jquery,如下所示:

$.post('search.php', {'my_zip_code': zip}, function(data, result, xhr){
    $("#eventsReturned").html(data); // notice how I use jquery instead of getElementById
});
好了,现在我们已经把它解决了。看起来主要的问题是你不能正确地调试代码。这真的很容易,所以这里是你如何做到这一点

如果您使用Google Chrome进行测试,您会注意到在开发者工具(F12)中有一个控制台选项卡。如果要在其中显示某些内容,可以使用:

console.log('anything');
因此,如果您想让say看到从服务器(search.php)返回的内容,您可以在我上面提供的代码中使用:

console.log(data); // data is what was returned from the jquery ajax post
这将在控制台中显示变量,您可以将其签出并查看返回的内容

现在,如果您想首先查看服务器是否收到了数据,那么这也很容易做到。再次在你的谷歌浏览器开发者工具中寻找一个叫做网络的标签。现在,在您的网络选项卡中,如果您向服务器发送了一个ajax请求,它将在那里列出,通常带有您请求的页面名称,如search.php

当你点击这个请求时,它会显示你首先发送了什么,但也会有一个带有回复的标签。。。现在,如果没有看到任何内容,可以转到php文件并键入以下内容:

var_dump($_POST);
这将显示发布到文件中的所有内容,包括邮政编码(如果曾经发送过)。输出应该在响应选项卡中,就像我上面提到的那样

知道如何调试代码和发现问题是最好的前进方式,而不仅仅是有人在这里给你的一些解决方案


Goodluck

除了下面的回答,我发现您的代码中有几个错误,我无法解释,如果您需要时间和帮助,我宁愿加入stackoverflow聊天室,帮助您解决问题。如果你想在聊天室聊天,我在聊天室
console.log('anything');
console.log(data); // data is what was returned from the jquery ajax post
var_dump($_POST);