我在页面上有几个相同的表单(它用于评级)。表格如下:
<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
)
事实上没有任何反应。值保持不变。
非常感谢任何帮助!
答案 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'] );
希望这会有所帮助:) 圣诞快乐