我在一个页面上有几个相同的表单(这是用于评级的东西)。表单看起来像这样:
<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'] );
希望这对你有帮助:)圣诞快乐