循环输出第一个和最后一个输入数据

时间:2017-04-09 20:11:59

标签: php

问题

所以,我有一个输入字段,用户可以输入团队领导者的名字和姓氏,然后可以点击“添加成员”来添加他们想要添加的尽可能多的团队成员。我的问题是,当我在foreach循环中循环输入数据并输出数据时,它只输出第一个和最后一个输入数据,以及所有输入数据。

示例

让我们说用户输入:

  • 领导者
    • 瑞克
  • 成员
    • 杰西卡
    • 丹尼尔
    • Krisha

这是输出的内容:

Rick

Krisha

但我想要输出:

Rick

Jessica

Danial

Krisha

PHP代码

<?php

    require '../connect.php';

    foreach ($_POST as $name) {
        echo $name . "<br>";
    }

 ?>

HTML代码

<div class="add-team">

     <h2 class="toggle-inputs">Add Team <i class="fa fa-caret-down" aria-hidden="true"></i></h2>

     <form class="inputs" action="server/add/add-team.php" method="post">
           <a href="JavaScript:void(0)">Add A Member</a>

           <div class="members">
                <input type="text" name="leader-name" placeholder="* Leaders First and Last Name...">
           </div>
           <button type="submit" name="add-team"><i class="fa fa-plus-circle" aria-hidden="true"></i> Add Team</button>
     </form>
</div> <!-- END OF ADD-TEAM -->

JavaScript代码

// MAIN
function main() {
    $(".add-team a").on("click", addTeamMember);
}

var countOfMembers = 1; // we keep track of how many members we are adding

// ADD TEAM MEMBER
function addTeamMember() {
    countOfMembers += 1; 
    $(".members").append("<input type='text' name='member-name" + countOfMembers + "' placeholder='* Members First and Last Name...'>");
}

// LOAD
$(document).ready(main);

2 个答案:

答案 0 :(得分:1)

Hey bud MicSoki是对的。你想将name ='member-name'变成一个数组,如下所示name ='member-name []'然后,在PHP中循环遍历它们以将它们添加到数据库中

$leaderName = $_POST["leader-name"];
$memberName = $_POST["member-name"];
for ($i=0; $i<count($memberName); $i++){
    $anotherMember = $memberName[$i];
    // insert anotherMember into database using prepared statement
    }

您只获得了领导者姓名和最后一个成员名称PHP导致您的帖子由领导者姓名和最后一个成员名称组成(您继续编写每个成员名称变量,因此您最后只得到最后一个) 。这就是你需要使用数组的原因。此外,当您检索发布数据时,您必须识别leader-name,并且所有成员名称都在两个单独的类别中。

答案 1 :(得分:0)

这是因为团队成员的所有输入都将名称设置为member-name,因此最后一个输入会覆盖以前的名称。您的javascript函数addTeamMember必须进行更改,以便在添加新输入时,它们为每个输入使用不同的名称。这是一种方法(未经测试):

var countOfMembers = 1; // we keep track of how many members we are adding

// ADD TEAM MEMBER
function addTeamMember() {
    countOfMembers += 1; 
    $(".members").append("<input type='text' name='member-name" + countOfMembers + "' 
    placeholder='* Members First and Last Name...'>");
}

这样,第一个成员的输入名称为member-name-1,第二个成员的输入名称为member-name-2,依此类推。