2016-07-02 4 views
1

私はmysqlで自分のデータを持っています。私はPHPでデータを取得するためにPDOを使用しています。次にjson_encodeを使用してjsに変換します。私は次のシナリオを使用するとき、私は常に出力NaNを取得し、静的な配列を使用する場合は動作します。だから、それは間違ったJSON形式かPHPの何かであると推測しています。db dynamicからデータを取得できません

これは私がスムーズに配列の値を設定した場合は動作します: はcodepen:http://codepen.io/pghiran/pen/QEvRjW

ダイナミック(DBからデータを引き出し、配列に格納し、動作しません。これを行うための私のコード:。

PHP

$exchangeRates = array(); 

$sql = 'SELECT * FROM exchange'; 

try { 
    $stmt = $conn->prepare($sql); 
    $stmt->execute(); 

    for ($i=0; $row=$stmt->fetch();$i++){ 
     $exchangeRates[] = array($row['rs3'],$row['07'],$row['deadman'],$row['currency']); 
    } 
}catch(exception $e){ 
    return $e; 
} 

var_dump($exchangeRates); 

var_dumpは次のように表示します:array [1] {[0] => array(4){[0] => string(3) "0.5" [1] => string(3) "1.5" [2 ] =>文字列(3) "3.5" [3] =>文字列(1) "$"}}

JS/jQueryの:

var amount = $('#amount'), 
        goldtype = $('#goldtype'), 
        exchange= <?php echo json_encode($exchangeRates);?>, 
        price = $('#price'); 

        console.log(exchange); 

        goldtype.change(function() { 
         var exchangeIndex = $("select[name='goldtype'] option:selected").index(); 
         price.val(amount.val() * exchange[exchangeIndex]); 
        }) 

にconsole.log(交換)ディスプレイ:

[Array[4]] 
0 
: 
Array[4] 
0 
: 
"0.5" 
1 
: 
"1.5" 
2 
: 
"3.5" 
3 
: 
"$" 
length 
: 
4 

https://gyazo.com/b167b38d62d9c4b567f31cc35ce00289

+0

これは 'json_encode'には必要ないからです。データに' amount.val() 'を掛けたときにデータの呼び出しに' [0] 'を追加するだけです。例えば – Matt

+0

var exchange = <?php echo json_encode($ exchangeRates);?>、変数は、私はこの行を削除する場合は、私はデータがありません。 – swipeales

+0

'exchange = <?php echo $ exchangeRates;?>'これはすでにcodepenに表示されているハードコードに似た配列形式です。 – Matt

答えて

1
$exchangeRates[] = array($row['rs3'],$row['07'],$row['deadman'],$row['currency']); 

これはexchangeRatesで保存した[0]のみ。私はこの行を次のように変更しました:

$exchangeRate = array($row['rs3'],$row['07'],$row['deadman'],$row['currency']); 
関連する問題