我试图通过Ajax将数组传递给PHP,但数组作为空字符串传递。这是我创建数组时的代码:
var params = new Array();
var inputs = new Array();
inputs = $(":input");
$.each(inputs, function(key, value) {
params[value.id] = value.value;
});
alert(params);
在此之前,大约有20个输入看起来像这样:
<input name="first_name" id="first_name" type="text" class="medium"/>
<input name="last_name" id="last_name" type="text" class="medium"/>
alert(params)
只给我一个空字符串。但是,alert(params['first_name'])
实际上为我提供了first_name
输入值。
阵列为什么不通过?
答案 0 :(得分:1)
你可以尝试一下 -
$(document).ready(function() {
var params = new Array();
var inputs = $(":input");
$.each(inputs, function(key, value) {
//I guess the problem was that params is array and your id's were strings
//array's elements are arr[0], arr[1],
//not like arr[firstname], arr[lastname], ...
params[value.id] = value.value;
});
alert(params);
});
//moved everything inside $(document).ready
用这个 -
<input name="first_name" id="0" value="1" type="text" class="medium"/>
<input name="last_name" id="1" value="2" type="text" class="medium"/>
<!-- Changed id's from string to numbers. -->
<强>更新强>
此外,试试这可能有助于您了解最新情况 -
$(document).ready(function() {
var params = {}; //use object instead of array
var inputs = $(":input");
$.each(inputs, function(key, value) {
params[value.id] = value.value;
});
for(var prop in params) {
alert(prop + " = " + params[prop]);
}
});
注意:params现在不是一个数组。
有了这个 -
<input name="first_name" id="firstname" value="Your first name." type="text" class="medium"/>
<input name="last_name" id="lastname" value="Your last name." type="text" class="medium"/>
答案 1 :(得分:-1)
您不能简单地将变量传递给服务器,您需要将其序列化为name, value
对,或使用JSON。
答案 2 :(得分:-1)
我有点不确定你想通过在这样的Javascript中创建数组来实现什么。
您最好的选择可能是使用JQuery命令serialize然后使用$ _GET
获取数据