在jQuery帖子中使用多个数组并获得PHP结果


use more than a array in jquery post and get php result

我想使用 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]."
  ";
}