【问题标题】:How to save form post to session and stay in the same html page?如何将表单帖子保存到会话并保持在同一个 html 页面中?
【发布时间】:2015-12-27 19:54:40
【问题描述】:

我有一个 html 表单,将收入发布到 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 并使用$_SESSION 数据填充html 页面的收入历史区域。我怎样才能做到这一点?任何帮助将不胜感激!

【问题讨论】:

  • “停留在同一页面上”是否意味着您希望数据在后台发布而无需离开页面?或者你想被重定向回页面?还有什么?
  • 如果可能的话,我希望在不离开页面的情况下将数据发布到后台。如果没有,我不介意重定向回页面。
  • 要在后台发布数据,请查看名为 AJAX 的东西。网上有很多例子可以参考。基本上你会从 JavaScript 代码向服务器发出请求,并且页面本身不会刷新。
  • 如何在 ajax 发布和保存后更改部分 html?我将在哪里实现代码?
  • 在实现 AJAX 调用时,通常会在请求完成后调用“回调”。在该回调函数中,您可以通过以某种方式修改页面或通知用户任何错误来响应 AJAX 请求。修改页面在这里是一个相当广泛的概念。本质上,您需要识别要更改的 HTML 元素并更新其innerHTML 属性等。

标签: php html forms session post


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    感谢所有 cmet 提供答案!

    【讨论】:

      【解决方案3】:

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

      如果您只想停留在同一页面上,请查看我之前在会议上发布的答案

      Simple session example not working

      【讨论】:

      • 是的,我熟悉 ajax。用ajax发布后,我可以保存数据。如何更新收入历史部分?
      • 在incomesave.php 上使用$return = $_POST; 收集所有的POST 数据;然后用 json_encode 回显它: echo json_encode($return);之后,您可以将其作为 ajax 成功方法中的数据收集并附加起始页的 html
      【解决方案4】:

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

      header('URL');
      

      url 将是 html 页面 url。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-23
        • 2011-12-29
        • 1970-01-01
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多