我在javascript中创建了一个新数组,并从函数向索引添加了值,然后将该数组传递给ajaxCall函数,我尝试将其转换为json并通过ajax发送到php文件,但是变量json始终为空。我已经阅读了很多有关如何通过ajax发送json_encoded的javascript对象的信息,并且看起来这是这样做的方法,但是显然我还没有读足够的书,或者我缺少一些东西。无论如何,我都是javascript新手,对您的帮助将不胜感激。
function createArray()
{
var advancedFormVars = new Array();
advancedFormVars['checkbox1'] = document.getElementById('OfferID').value;
advancedFormVars['checkbox2'] =document.getElementById('offerName').value;
AjaxCall(advancedFormVars);
}
function AjaxCall(advancedFormVars){
var json = new Array();
json = JSON.stringify(advancedFormVars); //in debuger it shows me this as content of json variable--> [] but advancedFormVars is not empty
$.ajax({
url : 'AL_loadForm.php',
type : 'POST',
data : {
json : json
},
dataType:'json',
success : function(data) {
alert(data);
}
...
您正在尝试将数组用作哈希,因此未设置值。
代替设定
var advancedFormVars = new Array();
尝试设定
var advancedFormVars = {};
例子
JS:
var advancedFormVars = {};
advancedFormVars['checkbox1'] = 'valueA';
advancedFormVars['checkbox2'] = 'valueB';
var json = JSON.stringify(advancedFormVars);
console.log(json); //{"checkbox1":"valueA","checkbox2":"valueB"}
的PHP
<?php
$json = '{"checkbox1":"valueA","checkbox2":"valueB"}';
$obj = json_decode($json);
var_dump($obj);
/*
object(stdClass)#1 (2) {
["checkbox1"]=>
string(6) "valueA"
["checkbox2"]=>
string(6) "valueB"
}
*/
?>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句