繁体   English   中英

从PHP的下拉菜单中提交多个值

[英]Submiting multiple values from a dropdown menu in PHP

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

我正在用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,James和Emily,活动将仅为Emily保存。 因此,表单仅保存最后选择的同事的活动。

有没有人有任何想法如何避免这种情况并成功为一项活动保存多个同事/成员?

将输入重命名为<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}' )");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM