在数组中插入多个键=>值对


Insert many key=>value pairs in array

我在一个页面上有几个相同的表单(这是用于评级的东西)。表单看起来像这样:

    <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发送表单数据到一个页面,我想在一个数组中存储所有的键=>值对。

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

$arr = $_POST; 
$array = array();
$array['titel'] = $arr['titel'];
$array['comment'] = $arr['comment'];
print_r($array);

当我发送第一个形式prin_r给出:Array ([title] => test [comment] => test2)

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

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

事实上什么也没发生。这些值保持不变。

任何帮助都非常感谢!

这里主要总结一下注释

1。表单和请求隔离

你说你提交了几个表格。每次向PHP脚本提交表单数据时,脚本逐行执行,完成后,整个过程终止。当提交另一个表单时,这将是另一个脚本执行,其中没有您之前定义的可用变量。

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

"记住"绑定到特定客户端的数据的一种技术是创建会话。会话由id和会话存储组成,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'] );

希望这对你有帮助:)圣诞快乐