duan19805 2017-10-11 10:27
浏览 31
已采纳

Php多种形式,在特定形式上迭代

I have page a with 2 forms

the first part of the form

<form id="A" role="form" enctype="multipart/form-data" method="post">
<input class="form-control" placeholder="Name of the Company" name="ven_name" type="text" autofocus >
<input class="form-control" placeholder="Address" name="address" type="text" autofocus >
<input class="form-control" placeholder="City" name="city" type="text" autofocus >
</form>


<form id="B" role="form" enctype="multipart/form-data" method="post">
<input type="text" name="usr_f_name[]" placeholder="First Name" />
<input type="text" name="usr_l_name[]" placeholder="Last Name" />
<input type="text" name="usr_mobile[]" placeholder="Mobile Number" />
<input type="text" name="usr_email[]" placeholder="Email" />
<input type="password" name="usr_password_1[]" placeholder="Password"/>    
</form>

both of them will be saved on a Database. Form A will be saved on Table A and Form B will be save on Table B. For Form B i'm using a Jquery so User can add multiple Users at a time ( maximum 3 user in one go )

here is the Php for Form B

    $usr_array = array_keys($_POST['']);
    foreach ($id_array as $id) {
        $usr_f_name =  mysqli_real_escape_string ($_POST['usr_f_name'][$id]);
        $usr_l_name =  mysqli_real_escape_string ($_POST['usr_l_name'][$id]);
        $usr_mobile =  mysqli_real_escape_string ($_POST['usr_mobile'][$id]);
        $usr_email =  mysqli_real_escape_string ($_POST['usr_email'][$id]);
        $usr_password_1 =  md5 ($_POST['usr_password_1'][$id]);



$sql = "INSERT INTO table_b SET f_name = '$usr_f_name', l_name = '$usr_l_name', mobile  ='$usr_mobile',username='$usr_email', email='$usr_email', password='$usr_password_1'";
        }
        if(mysqli_query($databaseLink, $sql)){
            echo "Records added successfully.";
        } else{
            echo "ERROR: Could not able to execute $sql. " . mysqli_error($databaseLink);
        }
    }

how do I tell php which form to iterate on?

  • 写回答

2条回答 默认 最新

  • doufangmu9087 2017-10-11 10:44
    关注

    Change naming of your fields:

    <div class="form-B"
      <input class="form-control" placeholder="Name of the Company" name="formA[ven_name]" type="text" autofocus >
      <input class="form-control" placeholder="Address" name="formA[address]" type="text" autofocus >
      <input class="form-control" placeholder="City" name="formA[city]" type="text" autofocus >
    </div>
    
    
    <div class="form-B">
      <input type="text" name="formB[0][usr_f_name]" placeholder="First Name" />
      <input type="text" name="formB[0][usr_l_name]" placeholder="Last Name" />
      <input type="text" name="formB[0][usr_mobile]" placeholder="Mobile Number" />
      <input type="text" name="formB[0][usr_email]" placeholder="Email" />
      <input type="password" name="formB[0][usr_password_1]" placeholder="Password"/>    
    </div>
    

    That way your $_POST will look like this:

    [
        'formA' => [
            'ven_name' => '',
            'address' => '',
            'city' => '',
        ],
        'formB' => [
            [
                'usr_f_name' => '',
                /* ... */
            ],
            [
                'usr_f_name' => '',
                /* ... */
            ]
            /*...*/
        ]
    ]
    

    And you can do:

    $query = 'INSERT INTO formB (usr_f_name, ...) VALUES ';
    $inserts = [];
    $params = [];
    
    foreach ($formData['formB'] as $fields) {
        /* ... */
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何用Thoony写ESP32温湿度检测无源蜂鸣器报警代码?
  • ¥20 部件内部的CT图像数据集
  • ¥15 Visual studio调用动态库
  • ¥15 双目摄像头标定后的校准文件
  • ¥15 powerbi矩阵增加度量值后出现对应关系错乱
  • ¥30 频率分析法分析绘制奈奎斯特图、波特图
  • ¥15 弹出来一万个系统找不到指定的文件框框,怎么解决
  • ¥15 ADS生成的微带线为什么是蓝色空心的
  • ¥15 求一下解题思路,完全不懂
  • ¥15 tensorflow