Javascript 拆分字符串并获取数值
我将数据从php回显传递到jquery$.get函数,并尝试使用if语句仅检索数字。我所遇到的问题是,对于我正在使用的代码,它只提取字符串中的最后一个字符,而我知道pop()就是这样做的。但是,我需要做的是在每个数字后面拆分字符串,并使用pop()提取并使用该值进行更新 我知道我发布的jquery代码不正确,但这是我第一次尝试这样做。如果有人能告诉我如何做到这一点,我将不胜感激。非常感谢 loadActions.phpJavascript 拆分字符串并获取数值,javascript,jquery,Javascript,Jquery,我将数据从php回显传递到jquery$.get函数,并尝试使用if语句仅检索数字。我所遇到的问题是,对于我正在使用的代码,它只提取字符串中的最后一个字符,而我知道pop()就是这样做的。但是,我需要做的是在每个数字后面拆分字符串,并使用pop()提取并使用该值进行更新 我知道我发布的jquery代码不正确,但这是我第一次尝试这样做。如果有人能告诉我如何做到这一点,我将不胜感激。非常感谢 loadActions.php $brtvsql = "SELECT * FROM act WHERE
$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);
这是inspector中返回的正确内容
brtv 30brtn 0
试试这个
服务器端代码
这些是更改$response=[]代码>,$response['brtv']=30代码>,标题('Content-Type:application/json')代码>和json_编码($response)代码>
Php响应应该是这样的
{“brtv”:30,“brtn”:2}
这里2是$count的假定值
Javascript端
更改php代码如下:
echo 'brtv' . ' ' . '30;';
echo 'brtn' . ' ' . $count;
brtv 30;brtn 0
请注意数字30
后的分号。服务器的响应如下所示:
echo 'brtv' . ' ' . '30;';
echo 'brtn' . ' ' . $count;
brtv 30;brtn 0
而在客户端,您可以像这样解析响应:
echo 'brtv' . ' ' . '30;';
echo 'brtn' . ' ' . $count;
brtv 30;brtn 0
var str=“brtv 30;brtn 0”;
变量数据={};
str.split(“;”).forEach(函数){
数据[s.split(“”[0]]=s.split(“”[1];
});
//检查结果
如果(数据[“brtv”]){
控制台信息(“brtv:%s”,数据[“brtv”]);
}
如果(数据[“brtv”]){
控制台信息(“brtn:%s”,数据[“brtn”]);
}
我建议返回JSON。那你就不需要到处乱闯了strings@RoryMcCrossan你能举个例子吗。Thanks@RoryMcCrossan我已经试着让他这么做了;)@埃迪???对不起,我不明白,我在上一个问题中的示例演示了如何将PHP数组转换为JSONTANK供您回复。但是,我在console.log中没有得到任何数据。此外,我在inspector中看不到php响应传递的任何数据。我尝试了echo-json\u-encode($response)代码>但没有;没什么区别。谢谢您是否相应地更改了php端代码?像$response=[]
@user1532468我已经更新了我的答案,您需要在php代码中进行更改。仍然没有更改console.log。你们能做一个片段来显示它的工作吗。Thanks@user1532468对不起,我的错误,我忘记在json\u encode($response)之前添加echo
,将其更改为echo json\u encode($response)代码>立即尝试谢谢回复。如果数据像您在回答中所做的那样是硬编码的,那么它是有效的,但是这些值总是会改变,因此我需要从loadActions.php
获取数据。还有%s
的目的是什么?感谢这样的示例:$brtvsql=“SELECT*FROM-act-WHERE-activity='Box-Retrieval'和new='1'$结果=mysqli_查询($conn,$brtvsql)$brtv_row=mysqli_fetch_assoc($result)$count=mysqli\u num\u行($result)//回显“brtv”30'; 回显“brtv”$计数$brtnsql=“从activity='Box Return'和new='1'处选择*$结果=mysqli_查询($conn,$brtnsql)$brtn_row=mysqli_fetch_assoc($result)$count=mysqli\u num\u行($result)//回音“brtn.”$计数回音“brtn.”$计数代码>并从客户端输出结果您可以根据需要更改结果。客户端代码处理您提供的服务器代码。很明显,如果更改服务器代码,就必须更改客户端代码。%s
仅用于在浏览器控制台中格式化输出,告诉它值的类型为字符串
。非常感谢您的帮助。我相信我能从这里算出。