2017-10-16 12 views
0

によって送信アレー:

var dataARR = { 
    byteValue: 1, 
    data: [] 
}; 

dataは配列です。

dataARR.data.push({Username: "wazo", Info: "wazoinfo"}); 
dataARR.data.push({Username: "bifo", Info: "bifoinfo"}); 

は、その後、それは準備して送信:PHPコードで

var dataJSON = JSON.stringify(dataARR); 
$.ajax({ 
    type: "POST", // This for array 
    url: "login.php", 
    cache: false, 
    data: { myJson: dataJSON }, 
    success: function (data) { 
     // Do stuff here 
    } 
}); 

私は、次の操作を行います。

$dataTotal = json_decode($post['myJson'], true); 
$Username0 = $dataTotal['data'][0]['Username']; 
$Info0 = $dataTotal['data'][0]['Info']); 
$Username1 = $dataTotal['data'][1]['Username']; 
$Info1 = $dataTotal['data'][1]['Info']); 

よく働いているすべての。

しかし、今私はXMLHttpRequestをに変更しています:

var url = "login.php"; 
var method = "POST"; 
var xhr = new XMLHttpRequest(); 
if ("withCredentials" in xhr) { 
    // XHR for Chrome/Firefox/Opera/Safari. 
    xhr.open(method, url, true); 
} else if (typeof XDomainRequest != "undefined") { 
    // XDomainRequest for IE. 
    xhr = new XDomainRequest(); 
    xhr.open(method, url); 
} else { 
    // CORS not supported. 
    xhr = null; 
} 

if (!xhr) { 
    return; 
} 
// Response handlers. 
xhr.onload = function (data) { 
    // Do stuff 
}; 

そして重要なビット

var dataJSON = JSON.stringify(dataARR); 
xhr.send({ myJson: dataJSON }); 

しかし、私はecho print_r($_POST);を行うと、今$_POST['myJson']

存在しません、それは返すArray()1

質問:私はxhr.send(????);で送って、PHPで配列を読み取ることができます。

答えて

0

XMLHttpRequestを使用してデータに別々にアクセスします。 PHPで

var dataJSON = JSON.stringify(dataARR); 
xhr.send(dataJSON); 

$dataTotal = json_decode(file_get_contents("php://input"), true); 
$Username0 = $dataTotal['data'][0]['Username']; 
$Info0 = $dataTotal['data'][0]['Info']); 
$Username1 = $dataTotal['data'][1]['Username']; 
$Info1 = $dataTotal['data'][1]['Info']); 
JavaScriptで

関連する問題