2016-07-02 2 views
1

mysql에 내 데이터가 있습니다. PDS를 사용하여 PHP로 데이터를 가져온 다음 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); 

{1} { ] => 문자열 (3) "3.5"[3] => 문자열 (1) "$"}}

,451,515,

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 (교환)를 표시 : exchangeRates에

[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 = ,이 줄을 지우면 변수가됩니다. 데이터가 없습니다. . – swipeales

+0

'exchange = '이미 codepen에 표시 한 하드 코드와 비슷한 배열 형식입니다. – Matt

답변

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

이 저장되었다 [0] 만. 나는이 줄을 다음과 같이 변경했다 :

관련 문제