【问题标题】:html form inputs array PHPhtml 表单输入数组 PHP
【发布时间】:2015-07-20 07:45:05
【问题描述】:

我的克隆表单有问题:

表单有 4 个输入,我需要将变量分开并由人将它们放在一起。

我的意见:

<input type="text" name="fName[]">
<input type="text" name="lName[]">
<input type="number" name="age[]">
<input type="text" name="city[]">

我的 PHP:

$fNameArray = $_POST['fName'];
$lNameArray = $_POST['lName'];
$ageArray = $_POST['age'];
$cityArray = $_POST['city'];

我真的不明白二维数组是怎么工作的,要分组人来完成表格,如下例:

名字:悉达多,姓氏:naranjo,年龄:29,城市:墨西哥
名字:xxxxx,姓:xxxxxx,年龄:xx,城市:xxxx。

【问题讨论】:

    标签: php


    【解决方案1】:

    如果我理解你的话,其中一些答案是错误的。 首先如果你使用命名约定data[]fname那么它肯定不会分组?

    其次,空白括号将使其不断移动到新数组。 你最终会得到一堆包含一个元素的数组。

    您需要对数组进行编号或标识以将它们保持在一起。

    <?php
        if(isset($_POST['data'])){
            $results = $_POST['data'];
            echo "<pre>";
            print_r($results);
            echo "<pre>";
        }
    ?>
    
    
    <form action="" method="post">
        <!-- User 1 -->
        <input type="text" name="data[0][fName]" value="test 1">
        <input type="text" name="data[0][lName]" value="test 1">
        <input type="number" name="data[0][age]" value="21">
        <input type="text" name="data[0][city]" value="test 1">
    
        <br>
    
        <!-- User 2 -->
        <input type="text" name="data[1][fName]" value="test 2">
        <input type="text" name="data[1][lName]" value="test 2">
        <input type="number" name="data[1][age]" value="22">
        <input type="text" name="data[1][city]" value="test 2">
    
        <br>
    
        <!-- User 3 -->
        <input type="text" name="data[2][fName]" value="test 3">
        <input type="text" name="data[2][lName]" value="test 3">
        <input type="number" name="data[2][age]" value="23">
        <input type="text" name="data[2][city]" value="test 3">
    
        <br>
    
        <input type="submit" value="Go">
    </form>
    

    这会产生这个:

    Array
    (
        [0] => Array
            (
                [fName] => test 1
                [lName] => test 1
                [age] => 21
                [city] => test 1
            )
    
        [1] => Array
            (
                [fName] => test 2
                [lName] => test 2
                [age] => 22
                [city] => test 2
            )
    
        [2] => Array
            (
                [fName] => test 3
                [lName] => test 3
                [age] => 23
                [city] => test 3
            )
    
    )
    

    你想要什么样的?

    【讨论】:

      【解决方案2】:

      你的html没问题

      如果我理解你的话,看看这个

      <?php
         if($_POST && isset($_POST['fName'])) {
            $people = count($_POST['fName']);
            for($i=0; $i<$people; $i++) {
                echo "<p>first name: {$_POST['fName'][$i]}, last name: {$_POST['lName'][$i]} ...</p>";
            }
         }
      

      【讨论】:

        【解决方案3】:

        对二维数组使用键。

         <input type="text" name="fName[0]">
         <input type="text" name="lName[0]">
         <input type="number" name="age[0]">
         <input type="text" name="city[0]">
        
         <input type="text" name="fName[1]">
         <input type="text" name="lName[1]">
         <input type="number" name="age[1]">
         <input type="text" name="city[1]">
        

        【讨论】:

          猜你喜欢
          • 2013-12-09
          • 1970-01-01
          • 2016-01-26
          • 2012-11-21
          • 1970-01-01
          • 2020-03-12
          • 2015-08-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多