【发布时间】:2022-01-13 06:43:33
【问题描述】:
我正在对 php 页面进行 ajax 调用。 php 在 2 个日期之间从数据库中进行选择。
这是php:
if(isset($_POST['fromdate'])){
$fromdate = $_POST['fromdate'];
$todate = $_POST['todate'];
$sql = "SELECT * FROM expenses WHERE date BETWEEN '$fromdate' AND '$todate' ";
$result = mysqli_query($connection, $sql);
while($row = mysqli_fetch_array($result)){
$data['amount'] = $row['amount'];
$data['date'] = $row['date'];
$data['description'] = $row['description'];
}
echo json_encode($data);
}
我的 ajax 调用如下所示:
$('#new_report').click(function() {
var fromdate = $('#fromdate').val();
var todate = $('#todate').val();
$.ajax({
url: 'new_report.php',
method:'POST',
dataType: 'JSON',
data: {
'fromdate' : fromdate,
'todate' : todate
},
success:function (data){
}
});
});
这在按 id 选择并且只获得一行时效果很好。我可以简单地:
success:function (data){
var amount = data.amount;
var date = data.date; //etc..
}
但由于它是一个日期范围,并且我得到多行,我如何处理数据并将其显示在我需要的地方?我知道我可以转到一个新页面并循环浏览 php 结果,但我强迫自己使用 javascript 对象。思考这个过程的正确方法是什么?
【问题讨论】:
-
我想知道你想如何在前端文件中显示数据
-
您的代码对 SQL 注入开放。不确定您的问题到底是什么——您是在问如何处理具有多行的 JSON 响应?
-
PHP 每次循环都会覆盖
$data数组。它应该为每个对象创建一个包含一行的二维数组。然后你可以在 JavaScript 中循环这个数组。 -
真的吗?有什么安全措施会干扰问题的提出?
-
$result[] = $data;在循环中,然后在循环后echo json_encode($result);。
标签: php arrays json ajax object