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 回答