如何将数据(关联数组)传递给php文件。
function ajax(url,data,callback)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
xmlhttp.onreadystatechange = function() {
if ( xmlhttp.readyState === 4 ) {
callback( xmlhttp.responseText );
}
}
}
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(data);
}
答案 0 :(得分:7)
我读这个的方式,你是javascript,你有一个javascript对象(javascript没有关联数组,只有数组和对象)。因此,无论您拥有什么数据,都需要将其转换为字符串并通过POST或GET将其发送到您的php脚本。我建议您将JSON3作为填充,以确保您的页面上有JSON.stringify
(用于跨浏览器)。代码将是这样的:
var data = {
someData: 'data',
moreData: [
'blah',
'bleh'
]
};
var stringData = JSON.stringify( data );
// using jquery ajax for brevity (http://api.jquery.com/jQuery.ajax/)
$.ajax({
type: "POST",
url: "your-php-script.php",
data: { data: stringData }
});
现在你的php脚本可以阻止该字符串并将其转回json本身:
<?php
$dataString = $_POST['data'];
$data = json_decode($dataString);
希望这就是你要找的东西。干杯!
答案 1 :(得分:0)
您可以使用PHP的JSON functions来实现此目的。它会将数组编码/解码为javascript可以处理的符号。