0

我正在研究一种将联系人列表中的收件人添加到数组的方法,以便数组的联系人可以用作消息中的收件人。我对数组的了解足以满足基本使用,但有一个令人烦恼的问题。我的联系人列表是在列表中动态生成的;

{
$contact = $row['contact'];
echo "<tr>";
echo "<td><font color=#808080><a href='mypagepost.php?contact=$contact' STYLE='TEXT-  DECORATION: NONE'><font color=#808080>" . $row['contact'] . "</a></font></td>";
echo "</tr>";
}

因此,每个联系人都是变量 $contact。当您单击联系人时,它会将您带到 mypagepost.php 发生这种情况的位置;

$messagerecipient = array();
$contact = $_GET['contact'];
$messagerecipient[] = "$contact";

我可以打印出数组的内容,没问题。但是,每次我添加一个新联系人时,它都会覆盖 [0] 中的联系人。如果我手动添加带有 subsequest $messagerecipient 条目的新联系人,例如;

 $messagerecipient[] = "Confused";
 $messagerecipient[] = "Oh, man";

它可以很好地增加它们;数组( [0] => csmith [1] => 困惑 [2] => 哦,伙计)

但是当我选择一个新的联系人时,[0] 总是会被覆盖。我想也许我需要把数组变成一个会话,但它做同样的事情。有人可以推荐一种方法吗?我需要添加到数组中的每个联系人递增(最终,我将设置一些允许我从数组中删除条目的东西)。任何帮助表示赞赏。

4

2 回答 2

2

制作一个 Session 变量,比如说$_SESSION['messagerecipient'];然后将值推送到此变量,使用array_push

例如:数组会话变量

于 2013-08-25T21:11:41.233 回答
2

此行:$messagerecipient = array();每次在添加联系人之前将变量设置为空数组。$_SESSION在这里是正确的想法,但我猜你用在 $_SESSION 中创建一个空数组替换了该行,这会导致同样的问题。您需要检查是否首先设置了会话变量 - 如果没有,则创建它。这将在您第一次选择收件人时发生;随后的时间应该只添加到现有的 via $_SESSION['recipient'][] = $contact(或 array_push,如 Shadowfax 所述 - 这些是等效的调用)。否则,每次您只需将其重置为空。

于 2013-08-25T21:21:49.797 回答