请参阅:AJAX query isn't functioning when passed a string我之前的问题 - 已经解决了,这是另一件让我感到困惑的事情的后续行动。
我的初始页面加载,有一个下拉菜单,用户选择一个名称,并将该名称发送到另一个页面,以将其加载到主页面上的DIV内。这一切都有效。有一个更新按钮:
<form id="updateChanges" method="POST" action="update.php">
<input class="button" name="update"<?= $LineID ?>" type="submit" id="update" value="UPDATE">
当它被点击时,它会启动JavaScript文件来执行AJAX调用,而无需刷新整个页面。
$(function() {
// Get the form.
var form = $('#updateChanges');
// Set up an event listener for the contact form.
form.submit(function(event) {
// Stop the browser from submitting the form.
event.preventDefault();
// Serialize the form data.
var formData = form.serialize();
// Submit the form using AJAX.
$.ajax({
type: 'POST',
url: form.attr('action'),
data: formData,
success: function() {
console.log("success!");
}
});
});
});
这也有效。
现在令我困惑的是如何获得最后一页&#34;刷新并显示此人对数据库所做的更新。我尝试了各种各样的东西,但是所有东西都导致了整页刷新,这是我无法做到的。
|_______________________________|
| ajaxtest.php |
| |
| _______#DIV____________ |
| | getuser.php | |
| | | |
| | | |
| |______________________| |
|_______________________________|
我需要成功函数内的一些内容,这些内容允许我在ajaxtest.php&#34; 上说&#34;刷新getuser.php?q = John%Done在这个DIV内部我尝试了作品。
我不能这样做......
success: function () {
setTimeout("window.location = 'getuser.php'",100);
因为我传递的原始字符串不在此JavaScript文件中,并且只解决了我的一半问题。如果我只是将代码设置为getuser.php?q=John%Doe
它可以工作,但它会将其作为主页加载,而不是作为主页上DIV内的页面。
我迷失了如何解决这个问题....
答案 0 :(得分:0)
我会研究PHP包含。听起来你不想访问该页面,所以只需在你的ajax访问的php文件中使用include。这样你就可以在php页面中使用你需要的任何逻辑。
成功后,对你要改变的div进行JQuery调用。
答案 1 :(得分:0)
如果你有另一个带有脚本的php页面,它只是用select语句读取数据库表,那么你可以使用你的成功函数放置一个JQuery get函数。
所以在成功的时候你可以做这样的事情。
success:function(){
$.Get("readDatabase.php",function(results){
//replace the html of the page with results
//change the selector id to the id of the div on the
//page you want to update
$("#results").html(results);
}
});