我有一个AJAX请求,如果get id成功,我想提醒数据。
如果我print_r
我的PHP函数,我得到了正确的结果。
我的阿贾克斯:
$.ajax({
type: "GET",
url: "getQuestions.php",
datatype: "json",
data:{
compid: id[4].innerHTML
},
success: function(response){
alert(response);
}
});
我的getQuestions.php:
<?php
include "functions.php";
getQuestions($_GET['compid']);
我的函数getQuestions($ compid)在functions.php中:
function getQuestions($compid){
$int=intval($compid);
$vastus=array();
$conn = dbconnect();
$sql="SELECT * FROM bet_question WHERE compid = $int";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
array_push($vastus,$row);
}
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
return json_encode($vastus);
}
如果我在print_r(getQuestions("some valid id"))
中getQuestion.php
我得到了有效的结果,如果我在var_dump($_GET['compid'])
中getQuestion
,我会从ajax请求中获得正确的ID。
如果我检查是否使用inspect元素发送了请求,那么我发送的请求是正确的参数,但响应是空的。
答案 0 :(得分:4)
您需要使用return
而不是echo
,而应将其更新为
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
array_push($vastus,$row);
}
echo json_encode($vastus);
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
exit;
答案 1 :(得分:0)
您不必返回数据,使用echo代替,并设置内容类型:
function getQuestions( $compid ) {
$int=intval($compid);
$vastus=array();
$conn = dbconnect();
$sql="SELECT * FROM bet_question WHERE compid = $int";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
array_push($vastus,$row);
}
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
@header( 'Content-Type: application/json' );
echo json_encode( $vastus );
exit;
}
希望有所帮助