【发布时间】:2011-06-23 09:16:52
【问题描述】:
上下文
我正在做一个项目,我想用 PHP + AJAX 使之更具动态性。 我在 AJAX 部分使用 jQuery,因为我完全沉迷于 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 秒,并带有 @987654327 @在里面。
第二个问题:我应该以其他方式管理 click 事件吗?我应该创建一个函数,例如
sendpost(post)并将其附加到 HTMLonclick=""事件中吗?
如果帖子发送成功
我会就 2 个选项展开讨论:
我们刷新页面[其实不是 加载整个页面,但 另一个检索 帖子列表并使之消失 老一,加载PHP文件到 检索新帖子(包括 我们刚刚发送的那个),然后制作 帖子列表出现]。 Pro: 1) 我们确定用户在帖子列表加载后正在阅读的内容是真正发送的帖子。所以它实际上会仔细检查动作。 2)我们还加载了同时发送的一些可能的帖子。 缺点:1) 我们必须创建一个 PHP 文件来获取帖子列表模板,将该页面的模板分割成 2 个文件。 2) 对我来说,这似乎并不顺利。
我们只是使用 Javascript 来获取帖子模板,将其添加到列表中。 专业版:1) 我们让它非常流畅,无需重新加载整个页面。 2) 我们不需要任何 PHP 文件来重新加载页面。我们只使用 Javascript (jQuery)。 缺点: 1) 我们如何获取 post html 模板以将其添加到列表中? 2) 我们如何在没有 PHP 的情况下获取用户(记录)信息?
第三个问题:第一个解决方案好还是第二个解决方案好?您会提供更好的第三个解决方案吗?
PHP 页面
将接收此 AJAX 调用的 PHP 页面是:?p=action&a=sendpost。该页面需要设置 $_POST['myMessage'] 并且不为空,仅此而已。页面本身将从 cookie 中获取所有用户信息,并将设法执行所需的查询。
应用程序
分为3部分:App、模板、库。基本上,应用程序的每个页面都有自己的.app.php 和.tpl.php 文件。
-
.app.php文件管理建筑物 页面的基础,使用类 和图书馆的其他东西。在 在我们的案例中,它从 数据库并将它们放入 变量。 - 模板在
.app.php文件的末尾调用。.app.php文件将检索到的数据发送到模板,.tpl.php文件将它们输出。 - 该库用于在应用程序文件中包含我们需要的类和函数。
第四个问题:这是管理我的网络应用程序的好方法吗?
编辑:如何将警报消息返回给用户?
我在$.ajax() 中读到了一个选项,它将管理成功或错误的响应。关于它的文档非常简单,我没有得到它。
第五个问题:我应该如何(从PHP文件)返回错误 还是成功?
【问题讨论】:
-
你考虑过jQuery表单插件(malsup.com/jquery/form)吗?
-
真正的问题不在于提交过程,而在于接下来会发生什么(帖子列表的刷新)。无论如何,感谢 jQuery 表单插件,它可能对我有很大帮助。
-
@Michael,你没有理解我的问题。
-
抱歉没看完整,但你也应该使用Q2的Ajax帖子来加载更改的数据。 (作为 Q3 的答案结合您的建议 1)
标签: php javascript html ajax