Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拆分字符串并获取数值_Javascript_Jquery - Fatal编程技术网

Javascript 拆分字符串并获取数值

Javascript 拆分字符串并获取数值,javascript,jquery,Javascript,Jquery,我将数据从php回显传递到jquery$.get函数,并尝试使用if语句仅检索数字。我所遇到的问题是,对于我正在使用的代码,它只提取字符串中的最后一个字符,而我知道pop()就是这样做的。但是,我需要做的是在每个数字后面拆分字符串,并使用pop()提取并使用该值进行更新 我知道我发布的jquery代码不正确,但这是我第一次尝试这样做。如果有人能告诉我如何做到这一点,我将不胜感激。非常感谢 loadActions.php $brtvsql = "SELECT * FROM act WHERE

我将数据从php回显传递到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);
这是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
仅用于在浏览器控制台中格式化输出,告诉它值的类型为
字符串
。非常感谢您的帮助。我相信我能从这里算出。