我想使用 jquery 将许多数组发布到 PHP 页面并获取结果,但我无法在 PHP 页面中给出数组
注意:未定义的索引:$name
注意:未定义的索引:$type
注意:未定义的索引:$value
注意:未定义的索引:$size
jquery代码:
$('#ss').live('click', function () {
$("#main_login").html("<center>waiting plaese . . . .</center>");
var name = [];
var type = [];
var size = [];
var value = [];
$(".name").each(function() {
name.push($(this).val());
});
$(".type").each(function() {
type.push($(this).val());
});
$(".size").each(function() {
size.push($(this).val());
});
$(".value").each(function() {
value.push($(this).val());
});
$.ajax({
type: 'POST',
url: 'process.php',
data: "name[]="+name+"&type[]="+type+"&size[]="+size+"&value[]="+value,
success: function (data) {
$('#main_login').html(data);
}
});
网页代码
<input type="text" class="name" name="name[]" value="" />
<input type="text" class="value" name="value[]" value="" />
<input type="text" class="type" name="type[]" value="" />
<input type="text" class="size" name="size[]" value="" />
<a href="#" id="ss">send</a>
该 PHP 代码 :
$name = $_POST['name'];
$size = $_POST['size'];
$value = $_POST['value'];
$type = $_POST['type'];
$names = array(
'name' => '$name',
'size' => '$size',
'value' => '$value',
'type' => '$type',
);
foreach( $names as $key => $n ) {
echo "
The name is ".$name[$key]."
The size is ".$size[$key]."
The type is ".$type[$key]."
The value is ".$value[$key]."
";
}
在 JavaScript 部分,ajax 调用中的这一行是有问题的:
data: "name[]="+name+"&type[]="+type+"&size[]="+size+"&value[]="+value,
您正在连接数组,这些数组将转换为逗号分隔的字符串。这不是你想要的(想想已经有逗号的单个值(。而是使用对象表示法。jQuery将处理它:
data: {
name: name,
type: type,
size: size,
value: value
}
其次,在 PHP 中,这段代码是有问题的:
$names = array(
'name' => '$name',
'size' => '$size',
'value' => '$value',
'type' => '$type',
);
$name 周围的单引号只会使其成为$name的文本字符串(不是变量,而是带有 $ 的文字......等(。
但是,除此之外,上述关联数组$names并没有真正帮助您。我会放弃整个语句,然后像这样继续(注意$name单数(:
foreach( $name as $key => $n ) {
echo "
The name is ".$name[$key]."
The size is ".$size[$key]."
The type is ".$type[$key]."
The value is ".$value[$key]."
";
}