php变量到JSON对象

时间:2015-12-24 06:52:29

标签: php json ajax codeigniter

我在codeigniter

中这样做

这是我的php开关 - 案例部分

case 'check':
$balance = $this->Model_transactions->getUserBalance($this->input->post('userId'));
$needToPay = floatval($this->input->post('tuitionRate')) / 2; // 50%
if ($balance >= $needToPay) {
$results = '{"Result": "OK";"Balance":'.$balance.'}';
}
break;

这里是json代码

$.ajax({
url: base_url + "api/hires/check/?callback=?",
type: "POST",
dataType: "jsonp",
data: {
userId: $(".navigation").data("login"),
tuitionRate: t.find("#txt-hire-rate").val()
}
}).done(function (a) {
if (a) if ("OK" != a.Result) {
alert (a.Balance);

我想要的是在我的jQuery中使用php $ balance变量。请帮忙。

3 个答案:

答案 0 :(得分:1)

不要尝试构建字符串文字,而是构造一个数组并使用json_encode

$results = json_encode(array('Result' => 'OK', 'Balance' => $balance), true);

然后在你准备好的时候把它归还。

return $results;

答案 1 :(得分:1)

编辑您的PHP脚本

case 'check':
$balance = $this->Model_transactions->getUserBalance($this->input->post('userId'));
$needToPay = floatval($this->input->post('tuitionRate')) / 2; // 50%
if ($balance >= $needToPay) {
$data = array(
  'Result' => 'OK',
  'Balance' => $balance 
);
echo json_encode($data);
}
break;

编辑您的jQuery脚本

$.ajax({
 type: "POST",
 url: '<?php echo base_url()."api/hires/check/?callback=?";?>',
 dataType: 'json',
 data:{userId: $(".navigation").data("login"),
 tuitionRate: t.find("#txt-hire-rate").val()},
 success: function(data){
            if(data.Result != "OK"){
                    alert(data.Balance);
            }
           }
 });

答案 2 :(得分:1)

php开关 - 案例部分

    case 'check':
    $balance = $this->Model_transactions->getUserBalance($this->input->post('userId'));
    $needToPay = floatval($this->input->post('tuitionRate')) / 2; // 50%
    if ($balance >= $needToPay) {
    $results = '{"Result": "OK";"Balance":'.$balance.'}';

    // add this in your code 
    <script>
       document.getelementbyId('balance').innerHTML=$balance;
    <script>
    }
    break;
    ?>
    <div id='balance' style='display:none;'></div> // added in the code

json代码

var bal=$(#balance).html(); // use this variable where you want to
$.ajax({
url: base_url + "api/hires/check/?callback=?",
type: "POST",
dataType: "jsonp",
data: {
userId: $(".navigation").data("login"),
tuitionRate: t.find("#txt-hire-rate").val()
}
}).done(function (a) {
if (a) if ("OK" != a.Result) {
alert (a.Balance);

我在php代码中做了更改,并在js中添加了变量,可以在你想要的任何地方使用。