2017-02-21 97 views
1

我想创建一个网页,从MYSQL数据库调用,呈现检索到的信息,然后以几种方式处理。什么是我现场处理和更新的最佳方法?

一旦输入一个唯一的数字,我就提出相关的细节,这里的例子是;

Order Number | Item 


---------- 
1234     B111 
1234     C333 
1234     D999 

在此之后,我想输入(更具体地,扫描条码)每个“项目”的手动,证实它们已被人工检查。

一旦完成,并且所有3个项目都已正确匹配,我想提交页面并将2个字段追加到数据库(这部分是没有问题的)。但是我不希望这样做是可能的,直到每个项目都被检查完毕为止,所以在确认正确之前不会对数据库进行交付。此外,如果扫描的内容不在此范围内,则会显示警报。

有没有人能够指出我在正确的方向上做到这一点的最佳方式?我不是一个完整的解决方案之后,而是完成这个最好方法的一个总体方向。

+0

如果我理解正确,您的整个流程基于保持打开数据库连接并等待几秒或几分钟的事务,同时人工操作员一个一个仔细处理项目。这在桌面应用程序中可行,但在网站中基本上不可能(或者至少非常困难),因为HTTP是无状态协议。 –

回答

1

如果我理解正确,你正在尝试做以下,在不同的步骤:

  • 第1步查找并打开一个订单。
  • 步骤2a扫描商品
  • 步骤2b Haveit抬头,显示
  • 步骤2c显示这一行为是否制定并显示反馈
  • 步骤2d查看是否有更多的产品
    • 如果是的,回到步骤2a
    • 如果没有,则转到步骤3
  • 第3步提交的数据,并将它在巴克处理第二

而且你问的处理步骤整个2

我能拿出2种方式的好办法:

服务器片面

做一些额外的桌子举行'会议'。 你的会议在这​​里是所有的3个步骤。

ScanSessionHeader ScanSessionLine

例如

当您扫描的顺序,你做出了改变日期时间标题记录,并使其保持打开状态。

只要记录处于这个“开放”状态。您可以在网页上显示此信息,并且可以继续显示下一个扫描字段。

当您向后端提交产品线时,请将产品条码保存在ScanSessionLine中,并将其保存为验证状态。

您可以在网页上显示此信息。

当需要提交整个东西时,请关闭标题,以便它不能再用于添加更多行。

如果所有行均正确验证,则您一次处理它们全部。

您可以通过将所有内容都存储在SESSION变量中来做同样的事情,但是当服务器重新启动时整个扫描会话将会丢失。

这可以通过显示任何打开的扫描会话时没有活动绑定到此会话来防止。 (通过在会话中持有ScanSessionHeader.ID),以便在服务器重新启动(或重新启动Apache)后继续。与异步服务器

客户端调用

顺序检索得到后,你打开一个形式的产品条码领域。

你可以从服务器端做到这一点,但我会从一开始就用JavaScript开始。

只要东西在字段中输入,你做一个AJAX调用: https://www.w3schools.com/xml/ajax_intro.asp

这在后台加载一个网页,与参数和使用此电话来验证码后,可以设置产品线的状态。

扫描的每一件产品都可以显示一个新的产品系列,因此您可以添加更多产品。

只要所有行都被验证为正确,您就会一直显示整个表单的提交按钮。

但是,只要重新加载页面,所有数据都会丢失。 例如,Javascript错误阻止您进一步完成表单,以便用户重新加载。

你选择什么样的路径取决于你的使用情况:

如果你想用各种方法来保存扫描的状态,与第一个去,并保存在数据库中的一个安全的解决方案。只要确保实施一种扔掉旧/失速扫描会话的方式。

如果您需要更多速度,并且不想等待整页重新加载,并希望它看起来更加花哨和活泼。使用异步服务器调用,并使用JavaScript完成所有魔术。

您仍然可以将整个会话保存在数据库中,但需要更多的代码才能将会话还原到用户正在查看的网页。

或者如果你想要一个非常快速和肮脏的解决方案。将验证所需的所有数据传递到网页,并让Javascript处理所有事情。

写下一些要求,我可以建议什么路径可以为你工作。

+0

正是我需要的!谢谢,这是完美的 –

相关问题