我在 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 = {};
Example
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"
}
*/
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)