我通过xml从api获取数据,其中包含有关网站每个用户的数据。 我需要最终将这些数据保存到mysql数据库中。 我正在解析数据并使用jquery获取每个用户的值。
我发现每个用户的节点都是这样的
$onlineid = $(this).find("onlineid");
$comment = $(this).find("comment");
然后获取值..
var onlineid = $onlineid.text();
var comment = $comment.text();
这就是我现在被困住的地方......
我需要创建一个关联的用户数据数组,然后将每个用户数据添加到一个用户数组中,以便可以使用php处理它们,然后保存到mysql。
也许是这样的......?
var users = new Array();
var user_data = new Object();
user_data['onlineid'] = onlineid;
user_data['comment'] = comment;
然后..
users.push(user_data);
这似乎构建了一个对象数组。 如果我使用ajax
将它们发布到php脚本中 $.ajax({
type: "POST",
url: "sync.php",
data: 'users='+users
firebug将它们显示为以逗号分隔的对象字符串。
我如何处理php脚本中的内容?
我基本上需要处理每个数组项(用户)中的每个对象(user_data),以便可以将值保存到mysql数据库中。
任何专家建议都会很棒。
答案 0 :(得分:1)
使用explode将“用逗号分隔的一串对象”拆分为PHP:
$users_array = explode(",",$users);
答案 1 :(得分:0)
您可以尝试将它们解析为qs中的值列表,如下所示:
用户[] = USER1&安培;用户[] = USER2与使用者[] =用户3
这应该为您提供一个名为users的数组,它是PHP页面的POST请求的一部分:
print_r($_POST['users']);
会输出:
user1, user2, user3
答案 2 :(得分:0)
我不使用PHP,但我要做的是创建一个javascript对象,该对象由单个userid字段/属性和另一个字段/属性组成,该字段/属性包含该用户的简单注释数组(这允许多个每个用户的评论)。然后我创建一个容器来容纳所有这些对象,使用userid(作为字符串)作为键,使用简单(数字偏移)数组或关联数组。然后我将整个kit-and-caboodle JSONify并将JSON编码的字符串发布到服务器,在那里它将从JSON格式解码回服务器可以使用的对象。 PHP肯定会提供一些帮助方法来简化这一过程。我会搜索“PHP JSON”。
答案 3 :(得分:0)
我会将数据作为JSON编码的字符串传输:
var users = [];
// in a loop:
users.push({onlineid: $(this).find("onlineid").text(),
comment: $(this).find("comment").text()});
// ajax request:
$.ajax({
type: "POST",
url: "sync.php",
data: {users: JSON.stringify(users)} // automatic HTTP encoding
JSON
object内置或可用via this script。
在PHP中使用json_decode
:
$users = json_decode($_POST['users'], true);
答案 4 :(得分:0)
结帐gist。它扩展了@picus的答案。