2014-01-12 3 views
-1

Это то, что у меня есть сейчас, но это работает, но мне нужны котировки вокруг чисел индекса id и total. Мне нужно, чтобы выглядеть следующим образом:Как добавить котировки вокруг возвращаемого значения функции в PHP

{"id":"528", "total":"5280"} 

Вот мой PHP код, который генерирует массив JSON:

else if(strcmp($_GET['action'], 'update') == 0) 
    { 
     $cart = $_SESSION['cart']; 
     $array = array(
      'id' => $cart->count(), 
      'total' => $cart->total() 
     ); 

     echo json_encode($array); 
    } 

Что в настоящее время Echos из:

{"id":528, "total":5280} 

Я пытался добавить котировки вокруг $cart->count() и $cart->total() вручную, делая '$cart->count()' и '$cart->total()', но это буквально возвращает строку, в которой находятся кавычки. Причина в том, что мне нужны котировки вокруг id и total, потому что, когда я пытаюсь отобразить их в javascript, он говорит undefined.

EDIT:

вот мой Javascript код:

$.ajax({ 
    type: 'GET', 
    url: 'includes/actionhandler.php', 
    data: { action: 'update'}, 
    success: function (data) { 
     var json = jQuery.parseJSON(data); 
     var obj = jQuery.toJSON(json) 
     alert(obj['total']); 
    }, 
}); 
+0

Это не должно возвращать 'undefined' в JavaScript. Можете ли вы показать результат и точное свойство, где жалуется, что он не определен? –

+1

Почему он возвращает undefined, вы выводите его с помощью ajax? Если да, установите атрибут return dataType в json и посмотрите. В противном случае заверните на обоих концах желаемый символ. – Rohan

+1

Так что, в сущности, вам нужны значения как строки? Почему бы не сказать так и не ввести меня в заблуждение, думая, что вам нужны котировки, обернутые вокруг него. –

ответ

1

Вы выводя его с помощью Ajax? Если да, установите атрибут return dataType в json using -

  $.ajax({ 
       type: "POST", 
       data: {}, 
       dataType:"json", 
       url: '', 
      }); 
2
$array = array(
    'id' => strval($cart->count()), 
    'total' => strval($cart->total()) 
); 

Это временное решение, но будет работать: P

+0

К сожалению, я уже пробовал это, и я получаю двойные кавычки и косые черты. '{" id ":" \ "529 \" "," total ":" \ "5290 \" "}' – ZZPLKF

+0

Ой, думаю, я получил его сейчас. Удерживайте в секунде – jgabriel

+0

См. Мое редактирование. Ваша проблема заключалась в том, что JSON отправлялся с номерами как INT. Вам не нужны котировки. Вам нужен тип 'string';) – jgabriel

-2
$array = array(
      'id' => '"'.strval($cart->count()).'"', 
      'total' => '"'.strval($cart->total()).'"' 
     ); 
Смежные вопросы