我的数据在mysql中。我使用PDO用php提取数据,然后使用json_encode转换为js。当我使用以下场景时,我总是得到输出NaN,如果我使用静态数组,它就可以工作。所以我猜测它要么是错误的json格式,要么是php的问题。
如果我平滑地设置数组的值,这会起作用:代码笔:http://codepen.io/pghiran/pen/QEvRjW
动态(从数据库中提取数据并存储在数组中(不起作用。我的代码是:
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(2("1.5"[2]=>string(4("3.5"[3]=>string(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]);
})
控制台.日志(交换(显示:
[Array[4]]
0
:
Array[4]
0
:
"0.5"
1
:
"1.5"
2
:
"3.5"
3
:
"$"
length
:
4
https://gyazo.com/b167b38d62d9c4b567f31cc35ce00289
$exchangeRates[] = array($row['rs3'],$row['07'],$row['deadman'],$row['currency']);
这只是在汇率[0]中节省。我把这行改成:
$exchangeRate = array($row['rs3'],$row['07'],$row['deadman'],$row['currency']);