2011-02-08 93 views
0

语境发送了一条信息PHP + AJAX

我的工作,我想,以与PHP + AJAX更加动态的项目。 我使用jQuery的AJAX部分,因为我完全吸入JavaScript,无论如何,它似乎是值得的。 我达到了我的应用程序需要使用表单发送帖子的地步,并且我想使用ajax调用来执行此操作。在我想发送帖子的页面中,还列出了最近提交的15个帖子。

第一个问题:我应该忘记它,只使用PHP吗?

行动

用户写入的<textarea></textarea>和点击的东西在<a id="myPostSubmit">Submit</a>那就是我的jQuery脚本管理的东西,如$("#myPostSubmit").live('click', function() { /* here i make the ajax call */ });的处理程序。如果帖子被成功提交,我们会做一些事情(我会在下一节讨论它),要么我们会使用我的showAlert(text)函数提醒用户,该函数会在其中显示一个4秒钟的黑盒子,其中包含text

第二个问题:我应该管理点击事件在任何其他方式?我应该创建一个函数,例如sendpost(post)并将其附加到HTML onclick=""事件中吗?

如果该信息发送成功

我会开一个讨论约2个选择:

  1. 我们刷新页面[实际上没有 加载整个页面,但制作 另一个ajax调用,检索 帖子列表并使其消失 旧的,将PHP文件加载到 检索新帖子(包括我们刚刚发送的 ),然后在 的帖子列表中出现]。 专业版:1)我们确信用户在发布邮件列表后加载的内容是发送的真实邮件。所以它实际上会双重检查动作。 2)我们也加载了一些可能的帖子。 缺点:1)我们必须创建一个PHP文件来获取帖子列表模板,并将该页面的模板切片为2个文件。 2)这对我来说并不那么顺利。

  2. 我们只是使用Javascript来获得发布模板,将其添加到列表中。 专业:1)我们使它非常流畅,无需重新加载整个页面。 2)我们不需要任何PHP文件来重新加载页面。我们只使用Javascript(jQuery)。 缺点:1)我们如何获得post html模板以将其添加到列表中? 2)我们如何在没有PHP的情况下获得用户(登录)的信息?

第三个问题:它是更好的第一或第二个解决方案?你会提供更好的第三方案吗?

PHP页面

的PHP网页,将收到此AJAX调用:?p=action&a=sendpost。该页面需要$_POST['myMessage']被设置,而不是空的,没有别的。该页面本身将从cookie中获取所有用户的信息,并将管理执行所需的查询。

应用

这3个部分分为:应用模板图书馆。基本上每个应用程序页面都有自己的.app.php.tpl.php文件。

  1. .app.php文件管理页面的基础建设 ,使用从库类 和其他的东西。在 我们的情况下,它从 数据库检索数据,并将它们放入 变量。
  2. 该模板在.app.php文件的末尾被调用。 .app.php文件将检索到的数据和.tpl.php文件发送给模板。
  3. 该库用于包含我们在应用程序文件中需要的类和函数。

第四问题:这是管理我的web应用程序的一个好办法吗?

编辑:如何将警报消息返回给用户?

我阅读了一个选项,其中$.ajax()将管理成功或错误响应。关于它的文档非常简单,我没有得到它。

第五问题:我应该如何回报(从PHP文件)错误 或成功?

+0

你有没有考虑过jQuery表单插件(http://malsup.com/jquery/form)? – Tomba 2011-02-08 11:48:58

+0

真正的问题不在于提交过程中,而在于接下来会发生什么(刷新帖子列表)。无论如何,感谢jQuery表单插件,这可能会帮助我很多。 – Shoe 2011-02-08 11:52:37

回答

1

第一个问题:我应该忘记它,只使用PHP吗?

那么,你的应用程序将接力于JavaScript,如果你使用AJAX,这几天我认为它只是罚款;)

第二个问题:如果我管理的单击事件中的任何其他方式?我应该创建一个函数,如sendpost(post)并将其附加到HTML onclick =“”事件中?

创建一个函数并绑定onclick。代码将更具可读性;)

第三个问题:第1个还是第2个解决方案更好?你会提供更好的第三方案吗?

我的解决方案:ajax提交表单并在回调中插入新评论到列表中或显示错误消息,如果用户无法评论。 检查jQuery serilize()提交表单数据与Ajax。

第四个问题:这是管理我的web应用程序的好方法吗?

这很好;)当你的应用程序变得越来越大时,你将不得不重新设计它,但是不要这样做,当目前的解决方案变得难以使用时就去做。 阅读一些关于构建MVC框架的好书。一般的编程模式。

1

你似乎在一切正常的轨道上。有很多关于如何精确附加事件处理程序,如何重新加载页面上的数据以及如何组织应用程序等的“最佳实践”的意见,但我个人宁愿建立更多的软件,而不是担心这样的细节。细节将最终呈现给你。

我个人发现,在页面上更新整个服务器端呈现的HTML块是更健壮的解决方案,但我看到人们使用模板获得了出色的结果。