[英]Get JSON data from ajax call to PHP page through POST
我想從一個表單中獲取AJAX調用的一些數據。 我在PHP頁面中將數據作為字符串獲取。 字符串看起來像
'FNAME': 'ABC', 'L-NAME': '某某', '郵件': '', '通': '', '電話': '', '性別': '', '出生日期': ''
現在我想將整個字符串轉換為數組,看起來像[“fname”] =>“abc”,[“lname”] =>“xyz”......依此類推
ajax調用如下:
fname = $("#form-fname").val();
lname = $("#form-lname").val();
email = $("#form-username").val();
pwd = $("#form-password").val();
phone = $("#form-phone").val();
gender = $("#form-gender").val();
dob = $("#form-dob").val();
var user = {"fname":fname,"lname":lname,"email":email,"pass":pwd,"phone":phone,"gender":gender,"dob":dob};
$.ajax({
type: "POST",
url: "doRegistration.php",
data: user
})
.done(function( msg ) {
window.location.href = "../profile.php";
})
.fail(function(msg) {
sessionStorage.setItem("success","0");
window.location.reload();
});
這是我的PHP代碼:
$content = file_get_contents("php://input");
file_put_contents("log1.txt",$content); //This produces the string I get above
現在我嘗試將字符串轉換為數組,如上所示
$dec = explode(",",$content);
$dec1 = array();
for($i=0;$i<count($dec);$i++)
{
$dec1[i] = substr($dec[i],strpos($dec[i],":"));
}
//After this $dec1 is empty and count($dec1) gives 0.
但這並沒有給我所需的數組。 我在這里查了幾個答案,但它們沒有解決我的問題。 我試圖谷歌但沒有找到任何解決方案。 代碼中有什么問題嗎? 請幫助。 提前致謝。
更改報價並添加大括號。 然后你可以解碼生成的json
$string = "'fname':'abc','lname':'xyz','email':'','pass':'','phone':'','gender':'','dob':''";
print_r(json_decode('{' . str_replace("'", '"', $string) . '}', true));
結果
Array
(
[fname] => abc
[lname] => xyz
[email] =>
[pass] =>
[phone] =>
[gender] =>
[dob] =>
)
在上面的代碼中,您使用for循環的索引作為數組的鍵。 如果您正在嘗試存檔(我相信它在Java中稱為字典)。 您可以嘗試以下代碼:
<?php
$string = "'fname':'abc','lname':'xyz','email':'','pass':'','phone':'','gender':'','dob':''";
$pieces=explode(',',$string);
foreach($pieces as $array_format){
list($key,$value) = explode(':',$array_format);
$array[$key]=$value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.