我试图使用以下代码从文件中获取编码数组[{"got":"1235.00","needed":"4350"}]
:
function getNewValues(){
$.ajax({
dataType: 'json',
url: 'get.php',
type: 'POST',
cache: false
})
.success(function(data) {
return data;
})
.fail(function() {
console.log("An error ocurred");
})
}
但问题是我回到return data
的唯一问题是array( object )
,问题是我不知道什么是错的,或者说文件出错了。
生成编码数组:
<?php
$pdo = new PDO('mysql:host=127.0.0.1;dbname=thermometer', 'root', '');
$sql = 'SELECT `got`.`value` AS got, `needed`.`value` AS needed FROM `needed`, `got`';
$statement = $pdo->prepare($sql);
$statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($result);
print_r($json);
?>
如果某人有解决方案,那将是很好的因为我无法解决它:(
答案 0 :(得分:0)
编辑:重读您的问题。认为this response类似的问题可能有所帮助。
执行准备好的语句之后,这样的事情可能会起作用而不是PDO :: FETCH_ASSOC
...
$result = $statement->execute();
for ($file_data = array(); $row = $result->fetch_assoc(); $file_data[] = $row);
$ file_data是一个关联数组,包含你想要的任何数据。
print json_encode($file_data);
答案 1 :(得分:0)
您需要在函数内部设置并返回变量,而不是尝试将ajax返回值作为函数返回。换句话说,将ajax返回一个变量传递给一个函数变量然后返回它。像这样:
function getNewValues(){
var returnedJSON= $.ajax({
dataType: 'json',
url: 'get.php',
type: 'POST',
cache: false
})
.success(function(data) {
return data;
})
.fail(function() {
console.log("An error ocurred");
})
return returnedJSON;
}
答案 2 :(得分:0)
您的问题是该功能在数据到达时已经完成。这是由于AJAX的异步特性。您需要在到达时处理您的数据,而不是假设它已经到达之前。
function getNewValues(){
$.ajax({
dataType: 'json',
url: 'get.php',
type: 'POST',
cache: false
})
.success(function(data) {
// Handle your data here;
})
.fail(function() {
console.log("An error ocurred");
});
// Attempting to use the data or returning the data here will not work!
}