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 と James を選択したときに、James が 2 番目に選択された場合、フォームを送信すると、アクティビティは彼のためにのみ保存されます。マークは無視されたままです。また、Mark、James、Emily を選択すると、Emily のアクティビティのみが保存されます。そのため、フォームは最後に選択した同僚のアクティビティのみを保存します。

それを回避し、1 つのアクティビティで複数の同僚/メンバーを正常に保存する方法を知っている人はいますか?

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 に答える