I am sending some form data form an AngularJs
app to my php script. So far I've been unable to get Angular to send a "regular" POST
request (it sends JSON data instead), so I figured I'd just decode it with php
, then use the results
I am now having trouble referencing the results. I get "NetworkError: 500 Internal Server Error
upon sending data to my script.
Here's my php code:
<?php
$data = file_get_contents("php://input");
$data = json_decode($data);
var_dump($data);
$fromName = $data["fromName"];
$fromEmail = $data["fromEmail"];
$msg = $data["inputMsg"];
The var_dump($data)
returns this:
object(stdClass)#1 (3) {
["fromName"]=>
string(4) "djea"
["fromEmail"]=>
string(13) "djea@djea.com"
["inputMsg"]=>
string(7) "testMsg"
}
can someone please point out what I'm doing wrong? Thanks
答案 0 :(得分:2)
将true
作为第二个变量传递给json_decode
以获取关联数组。
$data = json_decode($data, true);
$fromName = $data["fromName"];
$fromEmail = $data["fromEmail"];
$msg = $data["inputMsg"];
如果您未将第二个变量作为json_decode
传递,则 true
会返回对象。
$data = json_decode($data);
$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;
答案 1 :(得分:0)
因为它是一个对象而不是一个数组,所以你需要访问这样的元素:
$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;
答案 2 :(得分:0)
请勿将object
视为an array
$fromName = $data->fromName;
$fromEmail = $data->fromEmail;
$msg = $data->inputMsg;