如何使用POST将javascript对象数组传递给php
假设我有一个javascript对象数组,我正试图将这些对象传递到php页面以将它们保存到数据库中。我将变量传递给php并在该变量上使用$_POST[“entries”]没有问题,但我不知道如何传递整个对象数组,因此我可以访问php页面上的objects.entryId和.mediaType值 哦,在别人问之前,是的,我之所以要这样做是因为我有一个flash上传程序,你猜到了。。上传到CDN服务器(远程),远程服务器仅回复此类js对象 谢谢任何人能提供的帮助 以下是我的JS函数:如何使用POST将javascript对象数组传递给php,php,javascript,ajax,Php,Javascript,Ajax,假设我有一个javascript对象数组,我正试图将这些对象传递到php页面以将它们保存到数据库中。我将变量传递给php并在该变量上使用$_POST[“entries”]没有问题,但我不知道如何传递整个对象数组,因此我可以访问php页面上的objects.entryId和.mediaType值 哦,在别人问之前,是的,我之所以要这样做是因为我有一个flash上传程序,你猜到了。。上传到CDN服务器(远程),远程服务器仅回复此类js对象 谢谢任何人能提供的帮助 以下是我的JS函数: functio
function test() {
entriesObj1 = new Object();
entriesObj1.entryId = "abc";
entriesObj1.mediaType = 2;
entriesObj2 = new Object();
entriesObj2.entryId = "def";
entriesObj2.mediaType = 1;
var entries = new Array();
entries[0] = entriesObj1;
entries[1] = entriesObj2;
var parameterString;
for(var i = 0; i < entries.length; i++) {
parameterString += (i > 0 ? "&" : "")
+ "test" + "="
+ encodeURI(entries[i].entryId);
}
xmlhttp.open("POST","ajax_entries.php",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", parameterString.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.onreadystatechange = handleServerResponseTest;
xmlhttp.send(parameterString);
}
function handleServerResponseTest() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
else {
alert("Error during AJAX call. Please try again");
}
}
}
功能测试(){
entriesObj1=新对象();
entriesObj1.entryId=“abc”;
entriesObj1.mediaType=2;
entriesObj2=新对象();
entriesObj2.entryId=“def”;
entriesObj2.mediaType=1;
var entries=新数组();
条目[0]=entriesObj1;
分录[1]=entriesObj2;
var参数字符串;
对于(变量i=0;i0?&“:”)
+“测试”+“=”
+encodeURI(条目[i].entryId);
}
open(“POST”,“ajax_entries.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“Content-length”,parameterString.length);
setRequestHeader(“连接”,“关闭”);
xmlhttp.onreadystatechange=handleServerResponseTest;
send(参数字符串);
}
函数handleServerResponseTest(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
警报(xmlhttp.responseText);
}
否则{
警报(“AJAX调用期间出错,请重试”);
}
}
}
也许您需要看看json和jQuery ajax方法:
.-
.-
该教程可能有点过时,因为jQuery的最新版本是1.3.x,但您将了解这一点以及PHP json函数。。。如果您的服务器未启用json扩展,则可以使用一些php类:
.-
祝你好运 我也有同样的问题。但是谷歌搜索力没有帮助 我试着自己调整和测试。我明白了。不过我使用的是
POST
方法。请尝试使用GET
方法。以下是想法:
将方括号内的数组索引值附加到数组的Post/Get变量名。对每个数组元素执行此操作
部分var参数=“&Name[0]=”+namevalue1+”&Name[1]=”+namevalue2下面脚本的code>将给您一个提示
这是我使用的测试JS(再次使用POST
方法而不是GET
):
这对我有用。很抱歉,格式和代码不完整。我想给你一个方向。Google reault网站无法给出解决方案。希望你觉得这很有用。顺便说一句。。。很抱歉链接!我希望2012年没有其他人使用这个。。。jquery、prototype等可以做得更好。。。
var xmlAJAXObject;
function test() {
xmlAJAXObject=GetxmlAJAXObject();
if (xmlAJAXObject==null) {
alert ("Oops!! Browser does not support HTTP Request.");
return false;
}
var namevalue1=encodeURIComponent("Element 1");
var namevalue2=encodeURIComponent("Element 1");
var parameters="&Name[0]="+namevalue1+"&Name[1]="+namevalue2;
xmlAJAXObject.open("POST", "test.php", true);
xmlAJAXObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlAJAXObject.setRequestHeader("Content-length", parameters.length);
xmlAJAXObject.onreadystatechange=stateChanged;
xmlAJAXObject.send(parameters);
}
function stateChanged() {
if (xmlAJAXObject.readyState ==4) {
if (xmlAJAXObject.status == 200) {
alert('Good Request is back');
document.getElementById("show").innerHTML=xmlAJAXObject.responseText;
}
}
}
function GetxmlAJAXObject() {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject) {
// code for IE6, IE5
return new ActiveXObject("Microsoft.Microsoft.XMLHTTP");
}
return null;
}