1

ボタンが押された場合に新しい項目を配列に追加したい

これは私のコードです...

$engineers = array();

if(isset($_POST['add_user'])){
    $engineers[] = $_POST['engineer'];
    $array_count = count($engineers);
}

配列に追加するのではなく、配列内の唯一の項目を置き換えるだけです。どこが間違っているのでしょうか?

ありがとう

使用されるフォームは

$dropdown = '<select id="engineer" name="engineer" class="select_engineer" type="text" name="engineer" /><option>Select Diary</option>';
while($row = mysql_fetch_assoc($result)){
    $dropdown .= "\r\n<option value='{$row['user_name']}'>{$row['user_name']}</option>";
}
$dropdown .= "\r\n</select>";

">

(エンジニアのリストは、MySQL データベースから取り込まれます)。

配列に追加する場所は他にありません。エンジニアのユーザー名を配列に追加するボタンが欲しいだけです。

4

3 に答える 3

1

ボタンが押されるたびにクライアント/サーバー通信を行っている場合は、Sessionを使用する必要があります。

クライアント/サーバー リクエストがあると、Web サーバーに新しいスレッドが作成されますが、他のスレッドで何が起こったのかはわかりません。クライアントがボタンをクリックして変数に追加された情報をサーバーに送信し、その回答を受け取った場合、PHP メモリにあったすべての情報は既に削除されていました。サーバーに行き、クライアントに戻り、サーバーに戻りたい場合は、何らかの方法で情報をどこかに保存する必要があります。Session を使用してすべてを保存し、最後に電子商取引などを行うと便利な場合があります。

于 2012-09-05T18:04:54.080 に答える
0

ページをリロードするたびに配列がリセットされます。Cookie、セッション、データベース、または...単純なアイデアにデータを保存する必要があります:

<?php
session_start();
if(!isset($_SESSION['engineers']))
$engineers = array();
else
$engineers = unserialize($_SESSION['engineers']);
if(isset($_POST['add_user'])){
    $engineers[] = $_POST['engineer'];
    $array_count = count($engineers);
}
$_SESSION['engineers'] = serialize($engineers);
于 2012-09-05T18:07:05.770 に答える
0

フォームを送信するたびに、コード全体が再実行されます。つまり $engineers、毎回空の配列に設定されます。送信されたデータは、この空の配列に追加されます。つまり、それが利用可能な唯一のデータになります。

$_SESSION永続化に使用します。

于 2012-09-05T18:08:12.147 に答える