我正在使用php
代码,我从输入中获取变量并使用ajax
码
$.ajax({
type: "GET",
url: "controller/appointment/src_agenda.php",
data: {
function: "professional",
variable: professional,
},
dataType: "html",
fail: function( jqXHR, textStatus, errorThrown ) {
alert(jqXHR);
},
error: function (jqxhr, ajaxOptions, thrownError) {
alert(JSON.stringify(jqxhr));
alert(jqxhr.status);
alert(thrownError);
},
success: function(data){
console.log(data);
}
});
我在成功函数中得到一个数组:
object(mysqli_result)#3 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(6)
["lengths"]=>
NULL
["num_rows"]=>
int(76)
["type"]=>
int(0)
}
如果我使用php foreach
它会显示所有行,但我尝试了javascript data.forEach
并且它说它不存在。我也尝试过(var data of data)但它会将每个角色都显示为个体。
如何在javascript中显示此查询结果中的每一行?
这是模型的代码:
$sql = "SELECT medical_agenda_id, day, `date`, time_start, time_end, hour_status_id FROM medical_agenda WHERE hour_status_id>='0' AND professional_id='".$id."' ;";
var_dump($sql);
$res = $this->db->query($sql);
return $res;
我需要将结果放在成功函数
中答案 0 :(得分:1)
return $res;
会返回大量不需要的数据。相反,将结果集的数据放入关联数组并echo json_encode()
。
data_type
最好是JSON而不是html
。因为,这将使您获得有效负载中的最小数据量。您可以决定如何在前端展示它们。
应该是类似的事情。
while($row = mysqli_fetch_assoc($res)){//Using procedural style here
$data[] = $row;
}
echo json_encode($data);
另外,var_dump($sql)
也应该被取出。否则,它也将包含在HTTP响应中,这将使JSON字符串无效。
把所有垃圾都拿出来,
$sql = "SELECT medical_agenda_id, day, `date`, time_start, time_end, hour_status_id FROM medical_agenda WHERE hour_status_id>='0' AND professional_id='".$id."' ;";
//var_dump($sql); Take this out!
$res = $this->db->query($sql);
//return $res; Take this out! You will return the data by echoing it to the Web Server
while($row = mysqli_fetch_assoc($res)){//Using procedural style here
$data[] = $row;
}
echo json_encode($data); //This is the output tho the client's request.
应该这样做。
这是您可以执行的 MINIMAL 以使代码正常工作。在将其投入生产之前,您需要进行许多优化。