这个问题在这里已经有答案了:
$.ajax数据未将指定值过帐到$\u post(2个答案)
两年前关门了。
非常感谢。
场景:我正在尝试通过jquery和带有多个字段的ajax来查询mysql数据库。第一次搜索运行正常。更新字段并重新搜索后,将显示原始搜索的数据,不更新。
我尝试过的:最初,我认为这可能是一个缓存问题,所以我设置cache:false。我想数据可能是在我的目标div中串联的,所以我添加了一行,使我的目标div('#inserted#itemŠdata').html('')等于一个空白字符串,这样就干净了(我甚至尝试在'success:'参数中添加一行(可能?)使数据数组为空:data:{}(我不知道是不是这样,但我试过了)。
所以如果没有更多的adu,我可怕的代码:
//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();
});
});
//学生\u get \u fetch.php//我的fetch php代码
* <?php
//fetch.php
$connect = mysqli_connect("webdev-2", "jhunt", "1234", "test");
$first_name = $_POST["first_name"];
$last_name = $_POST["last_name"];
$residency = $_POST["residency"];
$output = '';
//$query = "SELECT * FROM students ORDER BY last_name DESC";
$query = "SELECT * FROM students WHERE
last_name LIKE '%". $last_name . "%' AND
first_name LIKE '%". $first_name . "%' AND
residency LIKE '%". $residency . "%' ";
$result = mysqli_query($connect, $query);
$output = '<br /><h3 align="center">Student (Quick Look)</h3><table class="table table-bordered table-striped"><tr><th width="31%">First Name</th><th width="31%">Last Name</th><th width="31%">Residency</th><th width="6%">Detail</th></tr>';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["first_name"].'</td>
<td>'.$row["last_name"].'</td>
<td>'.$row["residency"].'</td>
<td>'.$row["id"].'</td>
</tr>
';
}
$output .= '</table>';
echo $output;
?>*
非常感谢您的指导。当然,symantical和最佳实践是我最肯定错过的。谢谢你,j
1条答案
按热度按时间bmp9r5qi1#
当页面加载时,您获取输入值并将其分配给变量,但是您不会再次检查这些值。
每次单击按钮时,您只是在使用加载页面时出现的过时值。
通过在click事件中移动变量赋值,它们将使用输入的当前值,而不是页面加载时的值。
我还做了一些小的句法修正。正如上面所指出的,您可能想要声明
fetch_item_data
其他地方。此外,您的data: {}
行不是必需的,也不是有效的。