首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将对象发送到PHP

如何将对象发送到PHP
EN

Stack Overflow用户
提问于 2014-10-31 00:11:45
回答 1查看 90关注 0票数 0

我试图通过ajax从客户端(javascript)向服务器(php)发送数据。我有一个像这样的物体:

代码语言:javascript
运行
复制
sinfo={
            topic_title:title,
            topic_id: tid,
            section_name:section_name,
            section_id: fid,
            circuito: "fc",
            from_mid:mid,
            sito:site,
            st: st,
            tags:{"m4148305":{"post_id":987649,"from_id":1}}
        }

我想把那个对象传递给服务器。我知道的唯一方法是使用JQuery,所以我尝试了这样的方法:

代码语言:javascript
运行
复制
$.post(baseurl+"/server/?act=post",sinfo,function(e)
               {
            sessionStorage.PixelTagSystemTagRequest="false";
        });

它在Chrome和Safari上运行得很好。但是Firefox显示了一个奇怪的错误,比如:

在不实现接口的.click上调用事件HTMLElement ()

解决方案应该很简单:更新JQuery,不幸的是,我不允许这样做。所以我尝试了一种纯JS解决方案

代码语言:javascript
运行
复制
var fd = new FormData(), lol, xml;
        for(lol in sinfo)
        {
            fd.append(lol,sinfo[lol]);
            //alert(lol+" = "+sinfo[lol]);
        }
        xml = new XMLHttpRequest();
        xml.open("POST",baseurl+"/server/?act=post");
        xml.onreadystatechange=function()
        {
            if(xml.readyState==4)
            {
                sessionStorage.PixelTagSystemTagRequest="false";
                alert(xml.responseText);
            }
        };
        xml.send(fd);

但是sinfo.tags仍然是一个对象,我不知道如何将该属性传递给服务器。

P.s:我试图避免(在JSON中)对对象进行紧张化,所以我不需要更改php代码。

EN

回答 1

Stack Overflow用户

发布于 2014-10-31 01:35:11

如果要使用FormData,可以添加如下代码:

代码语言:javascript
运行
复制
for(lol in sinfo)
{
    if (lol == "tags") {
        for (lok in sinfo[lol]) {
            fd.append("tags[" + lok + "]", sinfo[lol][lok];
        }
    } else {
        fd.append(lol,sinfo[lol]);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26665559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档