JQuery 中未显示 JSON 数据。

3

HTML代码如下:

<select  name="ser" id="ser" class="form-control" onchange="getPrice(this.value);">
<option value="">--Select--</option>
<option value="Value11">Value1</option>
<option value="Value2">Value2</option>
</select>
<input type="text" name="sale" id="saleprice"  class="form-control" />
<input type="text" name="sale" id="saletax"  class="form-control" />
<input type="text" name="sale" id="avalqty"  class="form-control" />

在我的 JS 页面上:
function getPrice(val)
{
   $.ajax({
     type: 'post',
     url: 'get_sales_price.php',
     data: {
       get_option:val
     },
     success: function (response) {
        var valuesar = response.split("|");
        $('#saleprice').val(valuesar[0]);
        $('#saletax').val(valuesar[1]);
        $('#avalqty').val(valuesar[2]);
     }
   });
}

这是我的PHP页面数据:
$data = array();    
$values=$variable1['value1'].'|'.$variable2['value2'].'|'.$variable3;
array_push($data, $values);
echo json_encode($data);
#saleprice的值为["61.25],#avalqty的值为[155"]#saletax的值为1。#saletax的值是正确的。 如何获取#saleprice["61.25]转换为61.25,并且#avalqty[155"]转换为155

2
在 AJAX 成功的回调函数中尝试使用 console.log(response),并将结果发布在此处。 - Divyesh Savaliya
你的浏览器控制台有没有任何错误? - Arun P Johny
4个回答

1
我认为你可以从服务器返回一个键值对对象,并在成功处理程序中使用它。在你的情况下,你正在返回一个带有单个字符串值的数组。
$data = array();    
$data['price'] = $variable1['value1'];
$data['tax'] = $variable2['value2'];
$data['qty'] = $variable3;
echo json_encode($data);

那么

function getPrice(val) {
  $.ajax({
    type: 'post',
    url: 'get_sales_price.php',
    data: {
      get_option: val
    },
    dataType: 'json',
    success: function(response) {
        console.log(response)
      $('#saleprice').val(response.price);
      $('#saletax').val(response.tax);
      $('#avalqty').val(response.qty);
    }
  });
}

如何在上述 PHP 代码中将列表框附加为数组值。 - Sambhu M R

0
在你的成功函数中尝试使用JSON.parse(response)。 你正在发送一个包含字符串的数组,所以你需要先解析它,通过数组索引访问字符串,然后拆分这个字符串。否则,你可以直接在你的php代码中输出字符串,而不是将其推入数组然后使用json_encode。
所以你的php代码应该是:
$values=$variable1.'|'.$variable2.'|'.$variable3;
echo $data;

这样,您将在ajax响应中收到一个字符串,您可以直接拆分。


0

更改

var valuesar = response.split("|");

 var valuesar = response[0].split("|");

0

嘿,你可以以以下方式使用你的代码

<?php
$data = array();    
$values='6.15'.'|'.'52.22'.'|'.'55.25';
array_push($data, $values);

$rr=json_encode($data);


$ltrim = ltrim($rr, '["');
$rtrim = rtrim($ltrim, '"]');


// echo $rtrim;



?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script type="text/javascript">

jQuery(document).ready(function() {


var response='<?php echo  $rtrim ?>';
console.log(response);

var valuesar  = response.split("|");


$('#saleprice').val(valuesar[0]);
$('#saletax').val(valuesar[1]);
$('#avalqty').val(valuesar[2]);

 console.log(valuesar[0]);

 });

 </script>
 <!DOCTYPE html>
 <html>
 <body>

<form>
<input type="text" name="saleprice" id="saleprice" >
<input type="text" name="saletax" id="saletax" >
<input type="text" name="avalqty" id="avalqty" >
</form> 

</body>
</html>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接