1

我希望有人能够帮助我解决这个问题!

我正在用 php 开发一个 Web 应用程序,我想提交我的一位同事的活动。有时该活动由多个同事完成,因此我希望能够提交该活动,但以某种方式,所有正在从事该活动的同事都会得到保存。

我决定使用下拉菜单,即 php 中的 select 标签。html代码如下:

<div id="placeholder">
<SELECT id="activeMember" NAME=name>
    <OPTION VALUE=0>Choose
    <OPTION VALUE=1>Mark
    <OPTION VALUE=2>James
    <OPTION VALUE=3>Emily
 </SELECT>

<button type="button" name="add" onclick="Add();">+</button>​

下面是javascript代码:

var _counter = 0;
function Add() {
    _counter++;
    var oClone = document.getElementById("activeMember").cloneNode(true);
    oClone.id += (_counter + "");
    document.getElementById("placeholder").appendChild(oClone);
}​

你可以在这个LINK上看到它是如何工作的

按下提交按钮时,会调用另一个脚本,将活动保存在我的数据库中:

$connection = mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");

$member = $_POST['name'];
$summary = $_POST['summary];
$date = date("l F d, Y");
$query = mysql_query("INSERT INTO activities (member, activitySummary, date) VALUES ( '" . $member . "', '" . $summary . "', $date."' )");

现在我的问题来了。当我选择 Mark and James 时,如果 James 是第二个选择的人,那么只有在我提交表单后才会为他保存活动。马克一直被忽略。此外,如果选择了 Mark、James 和 Emily,则仅为 Emily 保存活动。因此,表单仅保存最后选择的同事的活动。

有谁知道如何避免这种情况并成功为一项活动保存多个同事/成员?

4

1 回答 1

3

将您的输入重命名为<SELECT id="activeMember" NAME="name[]">,然后当数据被提交时,它将在一个数组中。

你必须修改你的 PHP 代码来处理传入的数组。

$members = $_POST['name'];
$summary = $_POST['summary'];
$date = date('l F d, Y');

foreach ($members as $member) {
    if (empty($member)) {
        continue;
    }

    $query = mysql_query("INSERT INTO `activities` (`member`, `activitySummary`, `date`) VALUES ( '{$member}', '{$summary}', '{$date}' )");
}
于 2012-11-30T20:01:21.490 回答