Php 如何将表单post保存到会话并保持在同一html页面中?

Php 如何将表单post保存到会话并保持在同一html页面中?,php,html,forms,session,post,Php,Html,Forms,Session,Post,我有一个html格式的表单,它将income发布到incomesave.php,在那里启动会话,并将所有表单内容保存到会话 问题是,在将数据保存到会话的同时,我希望在提交表单时始终停留在同一页面上,并使用该会话值填充同一页面上的收入历史记录。我如何保持在同一个页面上,并使用php处理数据 这是html中的表单: <form action="lib/php/incomesave.php" method="post"> $: <input type="number" name=

我有一个html格式的表单,它将income发布到incomesave.php,在那里启动会话,并将所有表单内容保存到会话

问题是,在将数据保存到会话的同时,我希望在提交表单时始终停留在同一页面上,并使用该会话值填充同一页面上的收入历史记录。我如何保持在同一个页面上,并使用php处理数据

这是html中的表单:

<form action="lib/php/incomesave.php" method="post">
  $: <input type="number" name="price">
  type: <input type="text" name="source" >
  <input type="submit" value="Submit">
</form>
<div class="row">
    <div class="twelve columns">
    <div class="title">
        Income history
    </div>

    <div id="incomehistory">
    </div>

    </div>
</div>

$: 
类型:
收入历史
这是用来保存表单数据的incomesave.php

<?php
session_start();

$price = $_POST['price'];
$source = $_POST['source'];
$_SESSION['price'] = $price;
$_SESSION['source'] = $source;

echo $_SESSION['price']; // print price 
echo $_SESSION['source'];
?>


我想保持在同一个页面上,运行incomesave.php并用
$\u SESSION
数据填充html页面的收入历史记录区域。我该怎么做?任何帮助都将不胜感激

如果不想刷新页面,则必须使用ajax来完成此操作。我不会发布代码示例,因为我不知道您对ajax post有多熟悉。 研究ajax发布和结果处理。如果您熟悉ajax post,请告诉我,这样我可以做一些代码示例

如果你只是想停留在同一个页面上,请查看我之前在sessions上发布的答案


如果您设置表单操作,它会将您重定向到操作url页面。在该页面上,初始化所有会话数据,然后使用标题将其重定向到同一页面,如

header('URL');

url将是html页面url。

向服务器提交AJAX请求,并使用结果修改DOM

xhttp.open("GET", "incomesave.php", false);
xhttp.send();
document.getElementById("incomehistory").innerHTML = xhttp.responseText;

使用ajax在不更改页面的情况下发布数据表单,在ajax调用后,将数据保存在incomesave.php中,然后使用回调或成功方法使用
.innerHTML
更改html


感谢您的所有评论,从而得出答案

“保持在同一页面上”是指您希望数据在后台发布而不离开页面吗?或者您希望被重定向回页面?还有什么?如果可能的话,我希望数据可以在后台发布而不离开页面。如果没有,我不介意重定向回页面。要在后台发布数据,请研究一种叫做AJAX的东西。网上有很多例子可以参考。基本上,您可以从JavaScript代码向服务器发出请求,页面本身不会刷新。在ajax发布和保存之后,我如何更改部分html?在哪里实现代码?在实现AJAX调用时,通常会有一个“回调”,在请求完成后调用。在该回调函数中,您可以通过以某种方式修改页面或通知用户任何错误来响应AJAX请求。在这里,修改页面是一个相当广泛的概念。基本上,您需要识别要更改和更新其
innerHTML
属性等的HTML元素。是的,我熟悉ajax。使用ajax发布后,我可以保存数据。如何更新收入历史记录部分?在incomesave.php上,使用$return=$\u POST;然后使用json_encode对其进行回显:回显json_encode($return);之后,您可以将其作为数据收集到ajax成功方法中,并将其附加到起始页的html中