繁体   English   中英

发送一个PHP + AJAX的帖子

[英]Send a post with 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)功能提醒用户,该功能显示带有text的黑盒4秒在里面。

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

如果帖子成功发送

我将讨论两个选项:

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

  2. 我们只需使用Javascript获取帖子模板,将其添加到列表中。 Pro :1)我们使它非常平滑,而无需重新加载整个页面。 2)我们不需要任何PHP文件来重新加载页面。 我们只使用Javascript(jQuery)。 缺点 :1)我们如何获得post html模板将其添加到列表中? 2)如何在没有PHP的情况下获取用户(已记录)信息?

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

PHP页面

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

应用程序

它分为3个部分: AppTemplateLibrary 基本上,应用程序的每个页面都有其自己的.app.php.tpl.php文件。

  1. .app.php文件使用库中的类和其他内容来管理页面基础的构建。 在我们的例子中,它从数据库中检索数据并将其放入变量中。
  2. 该模板在.app.php文件的末尾被调用。 .app.php文件将检索到的数据发送到模板, .tpl.php文件将它们输出。
  3. 该库用于包含应用程序文件中所需的类和函数。

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

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

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

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

你似乎与一切都在正确的轨道上。 关于如何准确地附加事件处理程序,如何在页面上重新加载数据以及如何组织应用程序等,有很多关于“最佳实践”的意见,但我个人宁愿构建更多软件而不是担心像这样的细节。 详细信息最终会告诉您。

我个人发现,更新页面上的服务器端渲染HTML的整个块是更可靠的解决方案,但是我看到人们使用模板获得了很好的效果。

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

好吧,如果你使用ajax,你的应用程序将继续使用JavaScript,这几天我认为它很好;)

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM