我将数据从php echo传递到jquery $ .get函数,并尝试使用if语句仅检索数字。我的问题是,使用我使用的代码,它只是提取字符串中的最后一个字符,而我知道这是pop()的作用。但是,我需要做的是在每个数字之后分割字符串,并使用pop()提取并使用该值进行更新。
我知道我发布的jquery代码不正确,但这是我第一次尝试这样的事情。如果有人可以告诉我如何实现这一目标,我将不胜感激。非常感谢
loadActions.php
$brtvsql = "SELECT * FROM act WHERE activity='Box Retrieval' AND new = '1'";
$result = mysqli_query($conn, $brtvsql);
$brtv_row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
echo 'brtv' . ' ' . '30';
$brtnsql = "SELECT * FROM act WHERE activity='Box Return' AND new = '1'";
$result = mysqli_query($conn, $brtnsql);
$brtn_row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
echo 'brtn' . ' ' . $count;
jquery代码
setInterval(function() {
$.get('/domain/admin/loadActions.php', function(data) {
var value = data;
if (value.indexOf("brtv") >= 0) {
var brtv = value.split(/[, ]+/).pop();
$(".retrievals").text(brtv);
console.log(brtv);
}
if (value.indexOf("brtn") >= 0) {
var brtn = value.split(/[, ]+/).pop();
$(".returns").text(brtn);
console.log(brtn);
}
});
}, 15000);
这是检查器中返回的正确内容。
brtv 30brtn 0
答案 0 :(得分:2)
尝试一下,
服务器端代码
这些是更改$response = [];
,$response['brtv'] = 30;
,header('Content-Type: application/json');
和json_encode($response);
$response = [];
$brtvsql = "SELECT * FROM act WHERE activity='Box Retrieval' AND new = '1'";
$result = mysqli_query($conn, $brtvsql);
$brtv_row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
//echo 'brtv' . ' ' . '30';
$response['brtv'] = 30;
$brtnsql = "SELECT * FROM act WHERE activity='Box Return' AND new = '1'";
$result = mysqli_query($conn, $brtnsql);
$brtn_row = mysqli_fetch_assoc($result);
$count = mysqli_num_rows($result);
//echo 'brtn' . ' ' . $count;
$response['brtn'] = $count;
header('Content-Type: application/json');
echo json_encode($response);
Php响应应该像这样https://eval.in/1026851
{"brtv":30, "brtn": 2 }
这里的2应该是$ count的值
JavaScript方面
setInterval(function() {
$.get('/domain/admin/loadActions.php', function(data) {
console.log(data.brtv);
console.log(data.brtn);
},'json');
}, 15000);
答案 1 :(得分:1)
像这样更改您的php代码:
echo 'brtv' . ' ' . '30;';
echo 'brtn' . ' ' . $count;
请注意数字30
后的分号。来自服务器的响应将如下所示:
brtv 30;brtn 0
比在客户端,您可以这样解析响应:
var str = "brtv 30;brtn 0";
var data = {};
str.split(";").forEach(function(s) {
data[s.split(" ")[0]] = s.split(" ")[1];
});
// Check the result
if(data["brtv"]) {
console.info("brtv: %s", data["brtv"]);
}
if(data["brtv"]) {
console.info("brtn: %s", data["brtn"]);
}