2011-08-17 108 views
0

我需要将PHP从html表单接收的JSON对象转换为php变量。我有两种形式form1给出值和form2提交它们。这是我给窗口2 JSON字符串值JSON对象为php变量

-html--javascript function- 

var myObj = { 
    "username" : theUsername, 
    "name" : theName, 
    "surname" : theSurName, 
    "email" : theEmail, 
    "password" : thePass, 
    "confirmpass" : thePass2, 
    "dob" : theDate, 
    "gender" : theGender, 
    "age" : theAge 
}; 

var jsonstr=JSON.stringify(myObj); 
document.forms["form2"]["hide"].value = jsonstr; //form2 gets the whole string 

-php- // $ jstr = $ _REQUEST [ “隐藏”];

//$newObj=JSON.parse(jstr);

// $ name = $ newObj.name;

这是我试过,但它不工作

我使用的HTML POST方法。 我现在如何将其转换回php中的单独变量?

+0

单独变量?你的意思是:$ username,$ name,$ surname ...? –

+0

这可能只是一个措辞问题,但JSON永远不会是一个对象:JSON是一个*字符串*。这就是为什么有'stringify()'方法。 –

回答

4

看一看json_decode

一个json_decode的结果是一个关联数组与存在于您的javascript对象的键和值。

如果您在发布到PHP脚本后不知道如何获取信息,请查看超全局的$_POST。但是如果你不熟悉,我建议买一个PHP书籍或阅读如果你想槽一些教程:)

0

从德JSON字符串指数将其发送到PHP页面

var myObj = { 
    "username" : theUsername, 
    "name" : theName, 
    "surname" : theSurName, 
    "email" : theEmail, 
    "password" : thePass, 
    "confirmpass" : thePass2, 
    "dob" : theDate, 
    "gender" : theGender, 
    "age" : theAge 
} 

然后在PHP页面:

extract($_POST); 

那么你应该会看到你的变量$名称,$姓,$电子邮件...

来源http://php.net/extract