Przechowuję wartość w bazie danych za pomocą stringify like

var value = JSON.stringify(credit);

I przechowywanie go w bazie danych poprzez AJAX.

javascript :

$(".revolving_credit_row").each(function(){
        var revolving_credit_object = {};
        var that  = $(this);

        that.find('.revolving_credit_input').each(function (){
            var field_name = $(this).attr('data-field-name');
            var field_value = $(this).val();

            revolving_credit_object[field_name] = field_value;
        });

        revolving_credit.push(revolving_credit_object);
    });

var value = JSON.stringify(revolving_credit);

Wartość w bazie danych jest podobna

[{"Creditor":"12500","Balance":"","Limit":"","Utilization":""},{"Creditor":"20525","Balance":"","Limit":"","Utilization":""},{"Creditor":"","Balance":"","Limit":"","Utilization":""}]

Teraz, gdy zaczynam pobieranie, zwraca mi dokładny ciąg, ale nie mogę go zdekodować.

Używam tej funkcji.

$credit = $business[0]->credit;

$temp = json_decode($credit);

        print_r($temp);
        exit;

Jak i print_r to nie daje żadnego wyniku, a jeśli używam var_export lub var_dump daje mi wartość null.

-1
programmer 20 listopad 2019, 19:13
4
Twój kod nie wystarczy, aby odtworzyć problem. Czy możesz dodać var_dump($credit) na początek? a może logika pobierania danych?
 – 
Franz Gleichmann
20 listopad 2019, 19:15

2 odpowiedzi

Musisz wstawić jako drugi parametr true do json_decode, aby uzyskać tablicę:

<?php

$input = '[{"Creditor":"12500","Balance":"","Limit":"","Utilization":""},{"Creditor":"20525","Balance":"","Limit":"","Utilization":""},{"Creditor":"","Balance":"","Limit":"","Utilization":""}]';

$decode = json_decode($input,true);
print_r($decode);

Daje wynik:

Array
(
    [0] => Array
        (
            [Creditor] => 12500
            [Balance] => 
            [Limit] => 
            [Utilization] => 
        )

    [1] => Array
        (
            [Creditor] => 20525
            [Balance] => 
            [Limit] => 
            [Utilization] => 
        )

    [2] => Array
        (
            [Creditor] => 
            [Balance] => 
            [Limit] => 
            [Utilization] => 
        )

)
0
Jimmix 20 listopad 2019, 19:19

Musi być:

$temp = '[{"Creditor":"12500","Balance":"","Limit":"","Utilization":""},{"Creditor":"20525","Balance":"","Limit":"","Utilization":""},{"Creditor":"","Balance":"","Limit":"","Utilization":""}]';

print_r($temp);

var_dump(json_decode($temp));
var_dump(json_decode($temp, true));

Jeśli nie masz tego między „”, funkcja json_decode() nie będzie działać.

-1
Lurhy Contreras 20 listopad 2019, 19:28
Jak mogę je umieścić, gdy skrócę je w javascript.
 – 
programmer
20 listopad 2019, 19:31
Czy mogę zobaczyć, co zrobiłeś ze zdaniem javascript? Czy zrobiłeś JSON.stringfy(object)?
 – 
Lurhy Contreras
20 listopad 2019, 19:35
Bu jeśli rośnie tak jak format tablicy, myślę, że nie musisz podawać ciągłości za pomocą JavaScript, możesz wziąć tablicę json i bezpośrednio dokonać dekodowania
 – 
Lurhy Contreras
20 listopad 2019, 19:40
Jak mogę to zapisać w bazie danych, jeśli nie jest to stringify?
 – 
programmer
20 listopad 2019, 19:43
Możesz zmienić pole typu na json.
 – 
Lurhy Contreras
20 listopad 2019, 19:45