在数组中插入许多key =>值对

时间:2012-12-23 11:44:12

标签: php ajax arrays

我在页面上有几个相同的表单(它用于评级)。表格如下:

    <form id="contact" name="contact" action="#" method="post">

    <input  id="titel" name="titel">
    <textarea id="msg" name="comment" class="txtarea"></textarea>

    <button id="send">Send</button>
     </form> 

我通过ajax将表单数据发送到我想在数组中存储所有key =&gt;值对的页面。

这是我在发送表单数据的php页面上的内容:

$arr = $_POST; 

$array = array();

$array['titel'] = $arr['titel'];
$array['comment'] = $arr['comment'];

print_r($array);

当我发送第一个表单时,prin_r给出:       数组([titel] =&gt; test [comment] =&gt; test2)

这正是我想要的。但是当我发送下一个表单时,值没有插入数组中,例如:

    Array ( [titel] => test [comment] => test2
    [titel] => test3 [comment] => test4

 ) 

事实上没有任何反应。值保持不变。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

主要在这里结束评论。

<强> 1。表单和请求隔离

你说你提交了几份表格。每次将表单数据提交到PHP脚本时,脚本都会逐行执行,一旦完成,整个过程就会终止。提交另一个表单时,这将是另一个脚本执行,它没有您之前定义的可用变量。

这就是HTTP的工作原理。每个请求都是一个独立的执行。

“记住”绑定到特定客户端的数据的一种技术是创建会话。 会话包含一个id,它存储在客户端,默认情况下自动存储到cookie中,以及会话存储,它存储在服务器上,可以在几个独立的请求中重用。

在此处了解详情 http://php.net/manual/en/features.sessions.php

<强> 2。 PHP中的数组

数组键必须是唯一的。 想象一下 - 如果不是唯一约束,那么PHP应该如何知道要访问哪个值。

你说“数组像数据库结果的几行”

这看起来像这样

$result = array
(
    0 => array ( 'col1' => 'colval1' ),
    1 => array ( 'col1' => 'vol1val' )
)

你可以做同样的事情

$survey = array (
    'step1' => array(...)
);

像这样访问

$survey['step1']['..']

将此保存到会话中

session_start();
$_SESSION['step1'] = $survey['step1'];

要在以后的请求中访问它

print_r( $_SESSION['step1'] );

希望这会有所帮助:) 圣诞快乐