【问题标题】:A form with jQuery UI tabs, PHP and a back function带有 jQ​​uery UI 选项卡、PHP 和后退功能的表单
【发布时间】:2012-04-17 02:51:50
【问题描述】:

看了几篇帖子,好像理解有问题……

  • 在其中一个选项卡中,我有一个表单 -- 好的
  • 此表单将通过 php 进行服务器验证 -- ok
  • 如果没有发生错误 - 用户有可能最终发送表单 - 好的
  • 新功能:如果没有出现错误 - 用户也可以返回并更改条目 - 不行

首先我尝试了类似的东西

echo '<input type="button" class="submit" value="make changes" name="back_button" onClick="history.go(-1)">';

将转到错误的选项卡并清除正确选项卡中的表单...

表单值像“粘性”一样

<input id="email" name="email" type="text" value="<?php if (isset($email)){echo $email;} ?>" /> 

目前确实有效。

表格在第 5 位。选项卡,我可以用类似的东西来解决: $tabs.tabs('select', 4);

我的 JS 代码应该是什么样子,我应该将它包含在我的 php 文件中,以及如何将它绑定到我的“后退按钮”?

更新: 在最后一页,用户可以看到输入的值并决定最终发送它们还是返回并更改它们。但是返回部分不起作用。

更新 2:

<form method="post" action="team.php#tabs-sign_in">

更新 3:

抱歉让您感到困惑: 会转到错误的选项卡并且不清除正确选项卡中的表单...这没关系。数据仍然存在,但用户会看到错误的选项卡。

更新 4:

刚想出类似的东西,但行不通...

<a href="#" onClick='history.go(-1);$("#tabs").tabs("select","4");'>modify</a>

谁能解释一下为什么这不起作用?

【问题讨论】:

  • 我认为整个问题出在您的按钮上。您如何发送/保存数据?如果您没有在任何地方保存数据就返回,那么您的表单字段值将会丢失
  • 因此您应该定义了一个action,这是您单击提交按钮时被定向到的页面。据我所知,您没有提交按钮。 action 中定义的网页应该以某种方式存储所有变量。如果您没有为表单定义操作。提交按钮将直接指向您的网络根目录。

标签: php jquery forms user-interface tabs


【解决方案1】:

我认为您可能会发现使用会话很有用。将数据保存到会话中以供将来编辑。

http://php.net/manual/en/features.sessions.php

或者,如果您有用户登录机制,最好将表单状态保存在数据库中以便以后编辑/更新。

【讨论】:

  • 它不适用于未来的版本等。它仅适用于“及时”处理
  • 我同意您将表单保存在数据库端,将任何内容放在会话上通常很难管理且无法真正规范,因此有人可以设置与您相同的会话变量,现在您要么损坏该变量的数据,或者您的值可能不正确。
  • 基本上,如果您希望用户能够返回并更新/编辑条目,那么它们需要存储在某个地方。您可以使用会话,或者可能在请求(获取/发布)时将这些值反弹回来。后者容易出现更多问题。
【解决方案2】:

为什么不使用 javascript 来存储大部分客户端数据和操作。并使用 ajax 将数据发布到您的服务器,因此您不需要刷新页面,并且您在选项卡之间的来回切换不需要页面加载,也不需要历史记录

编辑 在选项卡之间切换意味着显示和隐藏不同的预加载 div

【讨论】:

  • 这是一个已经在运行的项目,大约有 35 个表单。我想避免更改整个表单处理,仅用于“返回”功能...
猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 2018-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多