【问题标题】:Getting a particular value from ajax response从 ajax 响应中获取特定值
【发布时间】:2015-09-13 12:48:11
【问题描述】:

我正在使用 ajax 和砌体

Ajax 代码:这个 ajax 用于从

获取数据
$.ajax({
      type: "get",
      url: "some.php",
      dataType: "text",                 
      success: function(data) { 
        if (data && data.length > 0) {       
          $items = $(data); 
          $grid.append( $items )
          .masonry('appended', $items);
          $(this).find(".loading").hide();
        }
      }

php 部分:这只是 php 文件的一小部分或足以理解问题的部分

$b= "sv";
echo "asjdgsajd";
echo "a";
echo $b;

现在我得到了正确的一切,但我想使用 $b 的值来设置属性值以及其他值作为内容,但是我如何才能特别获得 $b 的值? 谢谢你

【问题讨论】:

  • 您能否发布您的 AJAX 响应的完整示例?为什么不改用 JSON?
  • sv asjdgsajd a after using break after each echo @Machavity
  • 使用 JSON 会更容易。您使用 dataType:"text" 是否有原因
  • 不,不是这样一个特殊的原因,那么如何与 jason @some-non-descript-user 一起做 iit

标签: javascript php jquery ajax jquery-masonry


【解决方案1】:

dataType 更改为json

$.ajax({
      type: "get",
      url: "some.php",
      dataType: "json",                 
      success: function(data) { 
        //data will hold an object with your response data, no need to parse
        console.log('Do whatever you want with ' + data.b + '.');
      }

some.php 中执行以下操作:

$response =array(
    'b' => "sv",
    'a' => "asjdgsajd",
    'c' => "a"
);
echo json_encode($response);
echo $b;

关联数组的项最终将作为 javascript 对象的属性,您可以在 success 回调(或 done 函数中使用,因为 success 已弃用)。

【讨论】:

  • 如果我不将数据类型从文本更改,因为我无法将整个代码转换为 json 数据,因为实际文件中有很多数据,那么? @some-non-descript-user
  • 嗯,你必须以某种方式使“b”可辨别。然后,您可以将它放在特殊的括号或其他东西中,然后做一些混乱的正则表达式工作以将其从文本流中拉出来。但我真的建议宁愿以一种干净的方式来做。
  • 也许您可以将只需要获取文本的请求与需要清除值的请求分开,并使用不同的 ajax 调用来获取它们?
【解决方案2】:

尝试使用 json 并更改您的 php 以发送 json 响应,这样您就可以发送更多内容并根据需要在客户端访问它们。

PHP 脚本:

$outArr=array("b"=>"sv","content1"=>"asjdgsajd","content2"=>"a");
$jsonResponse=json_encode($outArr);
echo $jsonResponse;

在 AJAX 函数中,您可以像这样访问您的数据:

$.ajax({
  type: "get",
  url: "some.php",
  dataType: "text",                 
  success: function(data) { 
    if (data && data.length > 0) {       
      data=$.parseJSON( data ); //parse response string
      b=data.b;//value of b
      content1=data.content1;//value of content1
      $("#exampleDiv").attr("id",b).html(content1); //set the attribute and content here for an example div
    }
  }
})

【讨论】:

  • 你能在上面的 ajax 代码中只做你建议的编辑吗@Amit
猜你喜欢
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
相关资源
最近更新 更多