用PHP+发送帖子;AJAX

用PHP+发送帖子;AJAX,php,javascript,html,ajax,Php,Javascript,Html,Ajax,上下文 我正在做一个项目,我想用PHP+AJAX使其更具动态性。 我在AJAX部分使用jQuery,因为我完全沉迷于Javascript,而且不管怎样,它似乎很有价值。 我的应用程序需要使用表单发送帖子,我想使用ajax调用来执行此操作。在我想发这篇文章的页面上,还有最近提交的15篇文章的列表 第一个问题:我是否应该忘记它,只使用PHP 行动 用户在中写入一些内容,然后单击提交,这是我将在jQuery脚本上使用类似$(“#myPostSubmit”).live('click',function(

上下文

我正在做一个项目,我想用PHP+AJAX使其更具动态性。 我在AJAX部分使用jQuery,因为我完全沉迷于Javascript,而且不管怎样,它似乎很有价值。 我的应用程序需要使用表单发送帖子,我想使用ajax调用来执行此操作。在我想发这篇文章的页面上,还有最近提交的15篇文章的列表

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

行动

用户在
中写入一些内容,然后单击
提交
,这是我将在jQuery脚本上使用类似
$(“#myPostSubmit”).live('click',function(){/*这里我进行ajax调用*/})的处理程序。如果帖子成功提交,我们将做一些事情(我将在下一节中讨论),或者我们将使用我的
showart(text)
功能提醒用户,该功能将显示一个带有
文本的黑框4秒钟

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

如果帖子成功发送

我将开始讨论两个选项:

  • 我们刷新页面[实际上不是这样] 正在加载整个页面,但正在生成 另一个ajax调用检索 发布列表并使其消失 旧的,将PHP文件加载到 检索新帖子(包括 我们刚刚发送的),然后 此时将显示帖子列表]。赞成:1)我们确信用户在加载帖子列表后阅读的内容是真正发送的帖子。所以它实际上是对动作的双重检查。2) 同时,我们也会加载一些可能发送的帖子。缺点:1)我们必须创建一个PHP文件来获取帖子列表模板,将该页面的模板分为两个文件。2) 对我来说,这真的不是那么顺利

  • 我们只需使用Javascript获取post模板,然后将其添加到列表中。赞成:1)我们使它非常平滑,无需重新加载整个页面。2) 我们不需要任何PHP文件来重新加载页面。我们只使用Javascript(jQuery)。缺点:1)如何让PostHTML模板将其添加到列表中?2) 如果没有PHP,我们如何获取用户(记录的)信息

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

    PHP页面

    将接收此AJAX调用的PHP页面是:
    ?p=action&a=sendpost
    。该页面需要设置
    $\u POST['myMessage']
    ,且不为空,其他内容不需要设置。页面本身将从cookies中获取所有用户信息,并将设法执行所需的查询

    应用程序

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

  • .app.php
    文件管理建筑 页面的基础,使用类 还有图书馆里的其他东西。在里面 在我们的案例中,它从 数据库并将其放入 变数
  • .app.php
    文件的末尾调用该模板。
    .app.php
    文件将检索到的数据发送到模板,
    .tpl.php
    文件将其输出
  • 该库用于在应用程序文件中包含我们需要的类和函数
  • 第四个问题:这是管理我的web应用程序的好方法吗

    编辑:将警报消息返回给用户怎么样?

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

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


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

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

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

    好吧,如果您使用ajax,您的应用程序将依赖于JavaScript,现在我认为这很好;)

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

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

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

    我的解决方案是:ajax提交表单并在回调时将新注释插入列表,或者如果用户不能注释,则显示错误消息。 检查是否使用ajax提交表单数据

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

    很好;)当您的应用程序变得更大时,您将不得不重新设计它,但不要做它知道,当当前的解决方案变得难以使用时做它。
    阅读一些关于构建MVC框架的好书。您是否考虑过jQuery表单插件()?真正的问题不在于提交过程,而在于接下来会发生什么(更新帖子列表)。无论如何,谢谢jQuery表单插件,它可能会对我有很大帮助。@Michael,你不明白我的问题。Sry di