我正在寻求对PHP脚本进行ajax调用以从MySQL获取数据,创建一个json数组并将其传递回ajax调用的成功函数,然后我将其用作JavaScript的参数功能。
这是我的ajax电话,
$('button[name="message"]').click(function() {
var $row = $(this).closest("tr"); // Find the row
var $tenant_id = $row.find(".col-md-1 id").text(); // Find the tenants ID
var $landlord_id = "<?php echo $id; ?>"
$.ajax({
url : "./message.php",
type : "POST",
async : false,
data: {
landlord_id: $landlord_id,
tenant_id : $tenant_id
},
success: function(data){
console.log(data);
var messages = data;
insertChat(messages.sender_id, messages.body, messages.timestamp);
}
})
});
这是我的PHP文件,
<?php
session_start();
require_once('../dbconnect.php');
// update tenants table to show deposit returned
if(isset($_POST['tenant_id'])){
$tenant_id = $_POST['tenant_id'];
$landlord_id = $_POST['landlord_id'];
$sql = "SELECT * from messages WHERE messages.sender_id OR messages.receiver_id = '$tenant_id' AND messages.sender_id OR messages.receiver_id = '$landlord_id'";
$result = mysqli_query($conn, $sql) or die("Error in Selecting " . mysqli_error($conn));
//create an array
$messages = array();
while($row =mysqli_fetch_assoc($result))
{
$messages[] = $row;
}
echo json_encode($messages);
}
?>
如果有人有教程或个别部分的链接,那就太棒了。我甚至不知道我上面概述的过程是否正确。 如果有人能告诉我正确的方法,这将是非常有帮助的!
由于
答案 0 :(得分:1)
调整你的javascript方面的一些事情(我不会解释你有的php sql注入问题......但请研究prepare
,bind_param
和execute
):
由于您从php(json_encoded)返回$messages
的ARRAY,您需要在success
处理程序中循环。
将dataType: 'JSON'
添加到您的选项中,因此它明确要求从php返回json。
你错过了几个分号;)
添加到您的代码中的调整:
$('button[name="message"]').click(function() {
var $row = $(this).closest("tr");
var tenant_id = $row.find(".col-md-1 id").text();
var landlord_id = "<?php echo $id; ?>";
$.ajax({
url : "./message.php",
type : "POST",
data: {
landlord_id: landlord_id,
tenant_id : tenant_id
},
dataType: 'JSON',
success: function(data){
console.log(data);
if (typeof data !== undefined) {
for(var i = 0; i < data.length; i++) {
insertChat(data[i].sender_id, data[i].body, data[i].timestamp);
}
}
}
});
});