javascript变量通过ajax问题到服务器
问题描述:
我的目标是通过Ajax发送数据到服务器。javascript变量通过ajax问题到服务器
但服务器没有完全接收数据。
这是我写的代码。
在javascript
var a = 1, b = 2, c = 3, d = 4, e = 5;
var f = { 'h':11, 'i':22, 'j':33};
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
data: { 'a':a, 'b':b, 'c':c, 'd': d, 'e': e,'dataImportant': f},
success: function(result){
/* do something */
},
error: function(result){
/* do something */
}
});
在PHP
function getAjax(){
$a = $this->input->post("a");
$b = $this->input->post("b");
$c = $this->input->post("c");
$d = $this->input->post("d");
$e = $this->input->post("e");
$f = $this->input->post("dataImportant");
echo "<pre>";
print_r($f);
echo "</pre>";
return;
}
结果:
<pre></pre>
我打算得到以阵列的形式的数据。
但它不能很好地到达
我的错误是什么?
答
是a
,b
,c
, d
等...在您的JavaScript定义的变量?如果没有,你只是palying:
var f = { h:'11', i:'22', j:'33'};
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
data: { 'a':'a', 'b':'b', 'c':'c', 'd':'d', 'e':'e','f':'f' },
success: function(result){
/* do something */
},
error: function(result){
/* do something */
}
});
答
我觉得你并不需要在你的数据声明引号:
data: { a:a, b:b, c:c, d:d, e:e, f:f},
的第一个字母定义你所命名下面的值。
{name:value, name:value}
,如果你在数据声明定义它,您只需要在值引号
data: {a:'a',b:'b',etc}
试试我的第一个例子,看看你的PHP脚本可以重复发送的值。
+1
JSON可以使用字符串文字来定义对特殊字符特别有用的对象变量:'obj = {'hyphen-ated':'foo'}'是完全有效的。 – zzzzBov 2011-03-29 20:16:38
我删除了骆驼案例符号,并没有问题。 – soredive 2011-03-30 02:35:41
dataImportant X数据重要O.也许骆驼大小写符号不是通过Ajax提供的一种方式 – soredive 2011-03-30 02:46:41