非常感谢。
场景: 我正在尝试通过具有多个字段的jQuery和AJAX查询mySQL数据库。第一次搜索运行正常。更新字段并重新搜索后,将显示原始搜索中的数据,不会更新。
我尝试过的方法: 最初,我认为这可能是缓存问题,因此我将cache设置为:false。 我以为数据可能是在目标div中串联的,所以我添加了一行以使目标div('#inserted_item_data')。html('')等于空白字符串,这样很干净。 (现在显示出我的总体看法)我什至尝试在'success:'参数中添加一行,这(也许是?)使数据数组为空:data:{}; (我不知道它是否可以那样工作,但我试了一下)。
因此,如果没有进一步的Adu,我的代码很糟糕:
collect()
// students_get_fetch.php //我的提取php代码
//students_get.php
...
<input class="input" type="text" name="first_name" id="first_name" value="">
<input class="input" type="text" name="last_name" id="last_name" value="">
<select name="residency" id="residency">
<option value="">---</option>
<option value="Resident">Resident</option>
<option value="Non-Resident">Non-Resident</option>
<option value="AB540">AB540</option>
</select>
...
<input type="button" name="search" id="btnSearch" value="search">
<div style="width:60%; margin:0 auto;" id="inserted_item_data"></div>
...
<script>
$(document).ready(function () {
//@TODO Alternatively research stringify or serialize funcs
var first_name = $('#first_name').val();
var last_name = $('#last_name').val();
var residency = $('#residency').val();
$('#btnSearch').click(function () {
$('#inserted_item_data').html('');
console.log("Item Data Cleared");
function fetch_item_data() {
$.ajax({
url: "students_get_fetch.php",
method: "POST",
cache: false, //disallowing cache
data: {
first_name: first_name,
last_name: last_name,
residency: residency
},
success: function (data) {
alert(data);
$('#inserted_item_data').html(data);
data: {}; //let's try emptying this array???
}
})
}
fetch_item_data();
});
});
高度赞赏您可以提供的任何指导。当然,我肯定会错过一些对称的最佳实践。 非常感谢你, J
答案 0 :(得分:1)
您正在获取输入的值,并在页面加载时将其分配给变量,但是您永远不要再次检查这些值。
每次单击按钮,您只是在重新使用页面加载时出现的过时值。
通过在click事件中将变量分配移动到 中,它们将使用输入的 current 值,而不是页面加载时的值。
$(document).ready(function () {
$('#btnSearch').click(function () {
var first_name = $('#first_name').val();
var last_name = $('#last_name').val();
var residency = $('#residency').val();
fetch_item_data(first_name, last_name, residency);
});
});
function fetch_item_data(first_name, last_name, residency) {
$.ajax({
url: "students_get_fetch.php",
method: "POST",
cache: false, //disallowing cache
data: {
first_name: first_name,
last_name: last_name,
residency: residency
},
success: function (data) {
alert(data);
$('#inserted_item_data').html(data);
}
});
}
我还做了一些小的语法更正。如上面的IncredibleHat所指出的,您可能想在其他地方声明fetch_item_data
。此外,您的data: {}
行不是必需的,也不是有效的。