【问题标题】:Hit Ajax only when user will add row in sql PHP Codeigniter仅当用户在 sql PHP Codeigniter 中添加行时才使用 Ajax
【发布时间】:2018-03-09 07:43:53
【问题描述】:

我们不想一次又一次地使用 ajax 来减慢 POS 其他进程

所以现在我们希望仅在用户从前端站点输入一些数据时才触发 ajax 就像我们在 POS 中有一个购物车并一次又一次地点击 ajax 会减慢 POS 的其他进程

我们希望如果用户从网站前端添加食物,那么它会通过点击 ajax 同时显示在 POS 后端的 POS 中

但我怎么知道该项目已添加 这可以通过一次又一次地点击 ajax 来完成,但我不希望那样 我只希望在 SQL 数据库中获得一些新结果时才使用 ajax。

jquery的时间间隔不好回答

还有什么想法吗?

【问题讨论】:

  • 你能显示一些代码吗,为什么不在添加到购物车按钮上添加 onclick 监听器,然后向后端发送 ajax 请求?或者您可以等到用户单击 procceed 结帐并发送购物车中所有商品的列表?需要查看一些代码来帮助您。

标签: php jquery sql ajax codeigniter


【解决方案1】:

我认为您可能必须使用网络套接字进行实时更新。看看这个http://socketo.me/(或)https://socket.io/

【讨论】:

    【解决方案2】:

    我认为你的答案是 javascript(jquery 库可能会让你的生活更轻松),让我解释一下原因。

    首先,ajax 是连接前端和后端的“链”。如您所知,php 无法“看到” DOM,唯一的方法是使用 forms ,为将在后端等中调用的元素命名,并在表单中调用您需要的 php 类。这样做的缺点是,一旦点击页面就会刷新。

    另一方面,我们有基于前端交互的 javascript。 Javascript 可以处理前端的所有变化并处理那里的事情(如焦点上的元素,点击等)。一个个人的观点是javascript是前端php的“眼睛”(当然更多的是为了简化)。

    既然我们说了,让我们谈谈您的问题。据我了解,您的代码有效,您只是在谈论优化。了解用户是否在您提到的食物字段中添加任何内容的唯一方法是您是否可以“看到”该字段(javascript)。

    我知道您不想触发 ajax,它调用查询数据库的 php 类。这意味着您必须将条件放在前端甚至后端。

    前端 端,您可以在用户点击时检查您的字段 (focus_lost):

    $( "#food_field" ).blur(function() {
      //ajax call
    }); 
    

    或者另一种解决方案是添加button 类似“提交”的内容,并将您的 jquery 设置为在点击时触发 ajax,例如:

    $( "#Submit" ).click(function() {
      //ajax call
    }); 
    

    在后端,您可以只使用 if 条件。我的意思是你可以继续触发你的ajax,但你不必查询数据库。例如,如果用户发送的数据是空的,你可以这样做:

    if($food_field<>''){
    //query the db
    }
    

    这样你只会在你感兴趣的字段中得到一个值时查询数据库。

    您甚至可以计算发送的数据的字母,例如:

        if(strlen($food)>6){
        //query the db
        }
    

    结论是后端和前端都有解决方案。我个人的拙见是,如果您想在前端处理事情,您可以在前端“过滤”它们,因为在那里您可以更轻松地管理它们。

    【讨论】:

    • 感谢您的回答,但假设它们是 WEB APP 的两侧,一个是前端,您可以在其中订购食品并将它们添加到购物车,第二个是 POS,现在假设您在后台其他地方,我在美食广场,然后当您将产品添加到您的篮子中并同时指定表号时,我将在 POS 现在打开该表号 现在同一张表在我面前打开,现在您订购添加一些食物在购物车中然后当你添加它在购物车表中的项目但是为了获得那些食物项目我必须点击一个 ajax 这将从 sql 获得结果我不想要那个命中
    • 我希望在使用时添加项目,同时一个请求会从我身边发出,并从 sql 中获取结果,其余的事情要显示是我的责任
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多