我正在尝试通过点击从$ .each循环动态生成的锚标记进行ajax调用以获取JSON响应。
有关信息:#records是我的表,.update是该表中的锚标记类。
请注意,该表是动态生成的。 现在问题是我的ajax调用什么都没有返回,即使我已经检查了它错误:但没有收到响应。我已经尝试在ajax调用之前警告我的var数据并且它工作。所以问题从ajax调用开始。而且,我的服务器端代码运行正常。
// Update existing customers
$("#records").on('click', ".update", function() {
var data = '?'+ $(this).attr('id');
$.ajax({
type: "GET",
url: "viewcustomers.php",
data: data,
success: function(response) {
console.log(response);
}
});
});
提前致谢。
以下参考是生成表格的代码。
// Function to make datagrid
function getRecords() {
$.getJSON("viewcustomers.php", function(data) {
var items = [];
var xTd = '';
var xTr = '';
$.each(data, function(key, val) {
var c = 0;
var id = 0;
$.each(val, function(key1, val1) {
if (c == 0)
{
id = val1;
}
c++;
xTd += '<td>' + val1 + '</td>';
});
xTd += '<td><a href="#" id="update=' + id + '" class="update">Edit</a></td>';
xTd += '<td><a href="customers.php?delete=' + id + '">Delete</a></td>';
xTr = '<tr>' + xTd + '</tr>';
items.push(xTr);
xTd = '';
xTr = '';
});
$("#records").append(items);
});
}
更新了服务器端代码: page url:localhost / hotel / viewcustomers.php
/ ** *获取单行以进行更新/删除。 * /
if(isset($_GET['update'])){
$customer = new Customers;
$Id = $_GET['update'];
$customer_single = $customer->View_Single_Customer($Id);
echo json_encode($customer_single);
unset($customer);
}
答案 0 :(得分:2)
将其修改为
$("#records").on('click', ".update", function() {
var request = '?id='+ $(this).attr('id');
$.ajax({
type: "GET",
url: "viewcustomers.php" + request,
success: function(response) {
console.log(response);
}
});
});
答案 1 :(得分:2)
此行未正确使用var data = '?'+ $(this).attr('id');
更改为:var my_id = $(this).attr('id');
然后使用data: data
data : {id:my_id}
完整代码:
$("#records").on('click', ".update", function() {
var my_id = $(this).attr('id');
$.ajax({
type: "GET",
url: "viewcustomers.php",
data : {id : my_id},
success: function(response) {
console.log(response);
}
});
});
或者这样做:
$("#records").on('click', ".update", function() {
var param = '?id='+ $(this).attr('id'); /*notice that I have added "id=" */
$.ajax({
type: "GET",
url: "viewcustomers.php" + param,
/* remove the data attribute */
success: function(response) {
console.log(response);
}
});
});