json字符串的Javascript帖子:没有任何东西传入或返回
Javascript post of json string: nothing passes in or back
我正在开发一个页面,该页面从html表(两列加上一个表单索引)中获取数据并生成json字符串。这应该传递到php中,然后我对数据进行一些计算,然后将其发送回页面,以在表中添加新的列值。
到目前为止,我得到的是:
数据阵列
这就是其中一个数组的样子(LatData):
[1, 1, "43.07104167", "43.07178767", "43.0707977", "43.07115595", "43.06975769", "43.07023291", "43.07269194", "43.07112776", "43.07067623", "43.07285063", "43.07132924", "43.07091389", "43.07218128", "43.07279775", "43.07440354", "43.07560161", "43.07471769", "43.07073611", "43.07067713", "43.070925", "43.07148333", "43.07070833", "43.07046389", "43.07024444", "43.07127778"]
将数组和int转换为JSON字符串
因此,我取两个数组,如上面的一个,长度相同,Item只是一个单值整数,然后我生成json字符串:
json = JSON.stringify({"Item":Item, "Lat": LatData, "Lon": LongData});
然后我得到一个漂亮的json字符串,如下所示:
{"Item":1,"Lat":[1,1,"43.07104167","43.07178767","43.0707977","43.07115595","43.06975769","43.07023291","43.07269194","43.07112776","43.07067623","43.07285063","43.07132924","43.07091389","43.07218128","43.07279775","43.07440354","43.07560161","43.07471769","43.07073611","43.07067713","43.070925","43.07148333","43.07070833","43.07046389","43.07024444","43.07127778"],"Lon":[1,1,"-99.325375","-99.32837458","-99.32465527","-99.325341","-99.32509187","-99.32417542","-99.32573126","-99.32726626","-99.32830531","-99.32749062","-99.32966364","-99.32493056","-99.33109478","-99.33023795","-99.32853197","-99.32776487","-99.32631851","-99.3253","-99.32540699","-99.32571944","-99.32540278","-99.32453889","-99.32566667","-99.32622222","-99.32622222"]}
将JSON字符串发送到PHP
以下是我发布数据的方式:
function MakePhpCall()
{
var json =""; //this is the JSON string of all the data
var Item=1; //holding this constant for now
json = JSON.stringify({"Item":Item, "Lat": LatData, "Lon": LongData}); //make JSON string to pass into PHP
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() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("response").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","Conversion_JQ.php?json=" + json, true);
xmlhttp.send();
}
PHP处理程序
然后在PHP方面,我这样做:
$positions = json_decode($json);
echo $positions->Item[0];
echo $positions->Lat[2];
echo $positions->Lon[2];
我没有得到任何错误,但在html页面中也没有得到对div的任何回调。
目标
最终,我想将JSON解码为PHP数组,这将帮助我更轻松地进行计算。
有人能帮我吗?
无法使用的常规方法传入字符串
xmlhttp.open("GET","Conversion_JQ.php?json=" + json, true);
然而,像这样编码变量:
var uri = encodeRUIComponent(json);
xmlhttp.open("GET","Conversion_JQ.php?json=" + uri, true);
允许变量传入。它最终有斜杠,所以我不得不使用
stripslashes($json);
在PHP端清理字符串。
相关文章:
- AJAX:$_GET不返回任何值
- document.styleSheets不返回任何内容
- 在解析对象.save()中;没有返回任何原因
- json字符串的Javascript帖子:没有任何东西传入或返回
- PhantomJs在控制台中发出http请求时不会返回任何状态
- 为什么这个array.filter总是不返回任何内容
- 如果URL中有任何字符串变体匹配,则返回true
- IE8DOM转换XML,并且不从jQueryfind()或filter()返回任何内容
- 比较数组中的连续元素不会返回任何结果(javascript)
- WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值
- Ajax 不返回任何结果
- JS/Jquery - 如果输入具有数组的任何名称,则返回关联的值
- 我的 API 调用没有返回任何内容
- Javascript函数img.onload不返回任何内容(真或假)
- 为什么我的 sinon 假服务器不返回任何内容
- beforeSave导致查询不返回任何内容
- Ajax对PHP页面的调用总是不返回任何内容,即使PHP页面有回声
- 控制器的Helper函数不返回任何内容
- 函数不返回任何内容
- 检查函数是否对数组中的任何项返回true