AJAX通过jQuery更新页面
AJAX via jQuery updates the page
我有一个PHP脚本,它连接到数据库,做一个简单的选择并返回一个数字。脚本工作正常,我可以通过添加
来测试它action="search_ODtime.php" method="POST"
到我的表单。但这一切都行不通。整个页面都在刷新,我什么也没得到。我花了一整天的时间想弄清楚这里到底出了什么问题。有人知道吗?
我的html文件:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#time_search').bind('submit', function() {
var origin = $('#origin').val();
var destination = $('#destination').val();
alert(origin);
$.ajax({
type: "POST",
url: "search_ODtime.php",
data: 'origin=' + origin + '&destination=' + destination,
success: function(data) {
$('#search_results').html(data);
}
});
});
});
</script>
</head>
<fieldset style="font-size:11pt; opacity: 1; color: white;">
<form id="time_search">
Orinig:
<input name="origin" id="origin" type="number" value="1" min="1" max="97">
<br>
Destination:
<input name="destination" id="destination" type="number" value="1" min="1" max="97">
<br>
<input type="submit" value="Get travel time" name="submit" id="submit" style="border-radius: 5px; display: block; margin: 10px auto 10px 0;">
</form>
Travel time:
<div id="search_results">
</div>
</fieldset>
</body>
</html>
表单正在被提交。您可以:a)完全删除表单,并将提交按钮更改为常规按钮,然后将事件绑定到按钮而不是表单,或者b)阻止表单提交。
jQuery将事件对象传递给每个事件处理程序。事件对象有一个叫做preventDefault()
的方法,它可以防止默认操作,无论是提交表单还是链接到页面或其他什么。
你需要通过为它添加一个变量将事件传递给函数,然后调用它的preventDefault()
方法来防止表单提交和页面刷新。
$('#time_search').bind('submit',function(event) {
event.preventDefault();
var origin = $('#origin').val();
var destination = $('#destination').val();
alert (origin);
$.ajax({
type:"POST",
url:"search_ODtime.php",
data: 'origin='+origin+'&destination='+destination,
success: function(data){ $('#search_results').html(data); }
});
});
值得注意的事情:
:
当通过AJAX提交表单时,您需要阻止浏览器的默认提交行为,从而防止刷新页面。
('#time_search').bind('submit',function(e) {
e.preventDefault();
第二:尝试以JSON格式发送数据 eg。{"origin": origin, "destination": destination}
相关文章:
- jQuery-更新jQuery.ajax().done()中点击的图像
- 如何更新jQuery Mobile全局弹出窗口的位置
- 更新jquery后文件上传不起作用
- 在ReactJs中更新组件时更新jQuery slick carousel
- 拖动事件后更新jQuery中jqxListBox的列表
- 如何停止将值追加到仅更新 jQuery 中的值
- 无法多次更新 jQuery 中 Ajax 调用的全局变量
- 使用 google api 地址更新 jQuery jqgrid 列
- 使用 Angular JS 动态更新 jQuery UI 属性的最佳方法
- 更新 jQuery 中的全局变量
- 如何在键入时更新 jQuery 值
- 尝试使用 mysql 和 php 更新 jquery 变量
- 更新 jQuery UI 工具提示上的数字
- 动态更新jquery中的iframe内容
- 更新jquery插件选项而不刷新页面
- 如何使用客户端数据更新jQuery.dataTables中的所有数据
- 以编程方式根据值更新jQuery滑块的位置
- ASP.NET:如何更新JQuery或Javascript中的隐藏字段
- 更新:jquery对话框模式单选按钮未选择ajax
- 在Ajax调用期间更新jQuery项