使用isset添加到数组

时间:2012-09-05 18:01:11

标签: php

如果按下按钮,我想要将新项目添加到数组中

这是我的代码......

$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>";

“&GT;                            

(工程师列表来自MySQL数据库)。

没有其他地方可以添加到数组中,我只想要一个将工程师用户名添加到数组的按钮

3 个答案:

答案 0 :(得分:1)

如果您每按一次按钮进行客户端/服务器通信,则必须使用Session

每当您有客户端/服务器请求时,都会在Web服务器中创建一个新线程,该线程不知道其他线程中发生了什么。如果客户端单击一个按钮并将信息发送到已添加到变量的服务器然后得到了答案,那么PHP内存中的所有内容都已被删除。 如果你想去服务器,回到客户端,回到服务器等等,你将不得不以某种方式存储信息。使用Session来存储所有内容并在其结束时执行某些操作(如电子商务)可能会很有用。

答案 1 :(得分: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);

答案 2 :(得分:0)

每次提交表单时,都会重新执行整个代码。这意味着每次$engineers都设置为空数组。提交的数据将添加到此空数组中,这意味着它将是唯一可用的数据。

使用$_SESSION来保持持久性。