【发布时间】:2014-10-25 12:43:12
【问题描述】:
我正在使用 ajax 将数据发布到 php 脚本以完成工作...基本上,我采用所有表单变量,并创建 json...然后将此 json 发送到控制器脚本:
function createJSON() {
jsonObj = [];
$("input[class=form-control]").each(function() {
var id = $(this).attr("id");
var value = $(this).val();
item = {}
item [id] = value;
jsonObj.push(item);
});
jsonData = JSON.stringify(jsonObj);
var request = $.ajax({
url: "../../../../ajax/signupController.php",
type: "POST",
data: jsonData,
dataType: "html"
});
request.done(function( msg ) {
console.log(msg);
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
}
我的代码很好地进入了 php 脚本,当我在 php 中使用“print_r”打印输出时,我得到了这个:
Array
(
[0] => stdClass Object
(
[mail-firstname] => FName
)
[1] => stdClass Object
(
[mail-lastname] => Lname
)
)
我的问题是,我无法获取元素...我已经尝试过:
$data = json_decode(file_get_contents('php://input'));
foreach ($data as $key => $value) {
print "<p>$key | $value</p>";
}
但我无法获取数组元素...我收到一个错误...在解码文件内容后访问数组我缺少什么?
谢谢。
更新:
修改后的foreach:
foreach($data as $key=>$value){
print $value->ccyear;//now I can get at individual elements
}
但是任何有破折号的值都会导致脚本失败...例如,如果名称是“mail-firstname”,PHP 认为它是邮件和名字...
【问题讨论】:
-
json_decode(,true):)