这是返回的数据
#Set directory
dir = setwd("D:/FRhData/elb") #set directory
filelist = list.files(dir) #save file names into filelist
myfile = matrix()
#Read files into R
for ( i in 1:length(filelist)){
myfile[i] = readLines(filelist[i])
*code with all calculations*
write.csv(x = finalDF, file = paste (filename[i] ,"_output. csv")
}
这是代码
name: "Doe, John ", salary: "1000"
它总是返回undefined,我该如何解决?
这是数据库中的员工表
$.ajax({
url: 'ajax.php',
method: 'POST',
data: {id: name.val()},
success: function(data){
var payObject = {data};
alert(payObject["name"]);
}
}};
这里是ajax.php
name salary
Doe, John 1000
答案 0 :(得分:1)
只返回一个JavaScript本身不能用作对象的字符串。要解决此问题,您可以将数据库数据转换为JSON并简单地返回JSON。在JavaScript中,您可以轻松地将JSON字符串转换为JavaScript对象,并像使用任何其他JavaScript对象一样使用它。
要将PHP数组转换为JSON字符串,请使用PHP函数json_encode,这样您的PHP代码将如下所示
<?php
include 'db.php';
$sql = $db->query("SELECT * FROM employee");
$res = mysqli_fetch_assoc($sql);
echo json_encode($res); // convert PHP associative array to JSON string
?>
现在您只需使用JSON.parse()将JSON字符串转换为JavaScript对象,或者使用jQuery的dataType:'json'参数
$.ajax({
url: 'ajax.php',
method: 'POST',
data: {id: name.val()},
dataType: 'json', // convert JSON string to JavaScript object
success: function(data){
var payObject = data;
alert(payObject["name"]);
}
}};
答案 1 :(得分:0)
这一行:
var payObject = {data};
应该是:
var payObject = JSON.parse(data);
使用parse
函数会将您的json字符串值转换为实际的JavaScript对象。看看这个:https://www.w3schools.com/js/js_json_parse.asp
答案 2 :(得分:0)
您的代码有一些更正:
首先,它应该是ajax脚本块:
$.ajax({ });
而不是
$.ajax({}};
然后,您应该添加dataType:'json'
,以获取json对象作为服务器响应。
我测试了它并成功从服务器获取json数据代码如下:
$.ajax({
url: 'data.php',
method: 'POST',
data: {
id: $('#name').val()
},
dataType: 'json',
success: function(data) {
var payObject = data;
alert(payObject.name);
}
});
然后,您需要将数据包装到Class,可能是这样的:
<?php
class User {
public $name;
public $salary;
}
?>
<?php
/**include 'db.php';
$sql = $db->query("SELECT * FROM employee");
$res = mysqli_fetch_assoc($sql);*/
//fill your object
$user = new User();
$user->name = "MTOha";
$user->salary = 100000000;
echo json_encode($user);
?>
mysqli_fetch_assoc
结果是数组,你也可以使用YottoDead的答案。