使用jQuery/PHP将数据输出到浏览器的多部分表单.如何显示输入数据
Multipart form with data output to browser in jQuery/PHP. How to show input data?
我正在尝试创建一个3步的表单:
- 填写表格
- 检查数据是否正确(显示输入)
根据这里一些人的建议(关于我之前的问题),我已经改变了我的方式,从主要是PHP + js验证到主要是js + PHP处理数据。
我现在需要一个关于如何处理这件事的建议。以前我有一个PHP if/else来确定要显示哪一步,并在$_SESSION中保存第二步的数据,并在第一步中保留可能的更正。
现在我想知道我是否真的需要两个ajax调用(首先处理数据,以显示它-第二步使用$_SESSION在第一步显示数据输入;第二步:用给定的数据生成电子邮件和pdf文件(与步骤2相同的$_SESSION)。
也许一个好的解决方案是将数据与javascript放在第二步,并且只在最后的处理和生成中使用$_SESSION。
解决这个问题的一般方法是什么?正常流程如下:
用户加载带有表单的页面。填好它。提交。
你可以在他们填写时验证每个字段(从用户的角度来看即时反馈很好)或使用onSubmit事件(在jquery $('#formID').submit中)进行验证。如果没有通过,你不允许他们提交,从submit函数返回false。
如果他们没有启用JS(你可以尝试阻止他们使用它w/o JS,但在现实中,他们可以只是使用curl -d "value1=foo&value2=foo2&value3=foo3" http://example.org/page/
来绕过你),你必须验证服务器上的数据。JS是不够的
如果它没有通过服务器验证,您可以使用Location: http://example.org
头将它们重定向到表单,或者在服务器端代码中再次回显表单。如果它确实通过了,你可以使用它(将它插入数据库,回显它,电子邮件它,等等)。
将数据保存在数据库中,并将其添加到$_SESSION。你把他们刚刚输入的数据连同一个"下载PDF"或类似的按钮一起返回。
点击"下载PDF"。
您拥有创建和PDF所需的所有信息。您不需要验证任何内容,但需要使用$_SESSION信息来创建PDF。您应该测试$_SESSION,以确保它们有来自先前页面的有效输入,否则有人可以模仿页面上的帖子并生成PDF(尽管可能是空白的)。我通常避免使用$_SESSION中的数据作为状态信息之外的任何东西——我会在post数据(在擦洗之后)上写入db,但如果它在$_SESSION中,它通常只是告诉我他们是谁的东西,并存储有关配置的其他信息等。在您的情况下,我已经在第一步写入数据库,现在将使用$_SESSION中的一些ID来拉出该记录并创建PDF以发送它。
我认为你所有的验证都可以在第一步轻松完成,然后你根据第一步的有效性将第二步分离为交付。
- 正在读取JSON,数据未显示
- 如何使用.log数据文件显示EXT-js网格
- 使用来自URL的JSON数据来显示谷歌地图标记-如何
- 数据未显示 - 余烬 js - Rest API
- JQuery JSON 数据未显示
- json数据未显示在jquery中
- 谷歌地图获取kml数据并显示它们
- jquery数据表显示/隐藏列添加了错误的选择
- 等待数据时显示加载程序
- sqlite选择的数据没有显示给ng重复
- 只想在页面上未加载初始数据时显示加载gif
- 为什么Ajax没有从表中获取数据并显示它
- 数据未显示在flot图表中(都市主题)
- Highchart阶梯线图表工具提示在没有数据时显示旧数据
- 获取的数据没有显示在新页面上(JavaScript/HTML)
- 在加载数据之前显示Ionic加载
- jqueryUi autocomplete - 自定义数据和显示
- HTTP 请求后,数据未显示在 Ember 应用程序中
- 使用 JavaScript 将数据 json 显示到网页中
- 使用 php 和 Jquery 数据表显示 mysql 数据库