Php 设计表单处理以支持支持AJAX浏览器和非AJAX浏览器的最干净方法是什么?

Php 设计表单处理以支持支持AJAX浏览器和非AJAX浏览器的最干净方法是什么?,php,javascript,ajax,Php,Javascript,Ajax,我正在使用PHP,我想知道最好的方法是如何处理简单的帖子和AJAX帖子,而不以最简单的方式重复代码。谢谢 我将以非AJAX作为基线,然后向表单中添加javascript以提交完全相同的内容 使用AJAX进行请求 类似(伪js)的东西: 真正的AJAX当然要复杂得多,它涉及到浏览器兼容性,以及用于获取和保存数据的代码 解析所有表单值。我将以非AJAX作为基线,然后向表单添加javascript以提交完全相同的值 使用AJAX进行请求 类似(伪js)的东西: 真正的AJAX当然要复杂得多,它涉及到浏

我正在使用PHP,我想知道最好的方法是如何处理简单的帖子和AJAX帖子,而不以最简单的方式重复代码。谢谢

我将以非AJAX作为基线,然后向表单中添加javascript以提交完全相同的内容 使用AJAX进行请求

类似(伪js)的东西:

真正的AJAX当然要复杂得多,它涉及到浏览器兼容性,以及用于获取和保存数据的代码
解析所有表单值。

我将以非AJAX作为基线,然后向表单添加javascript以提交完全相同的值 使用AJAX进行请求

类似(伪js)的东西:

真正的AJAX当然要复杂得多,它涉及到浏览器兼容性,以及用于获取和保存数据的代码
正在分析所有表单值。

只需创建如下表单:

<form action="formhandler.php" method="post">
    <!-- form data here -->
</form>

您需要知道的唯一一件事是,如果表单是通过Ajax请求提交的,
$\u服务器['HTTP\u X\u REQUESTED\u WITH']
包含信息,只需创建如下表单:

<form action="formhandler.php" method="post">
    <!-- form data here -->
</form>
您需要知道的唯一一件事是,如果表单是通过Ajax请求提交的,则
$\u服务器['HTTP\u X\u REQUESTED\u WITH']
包含信息,这称为。最好的方法是构建一个在关闭JavaScript的情况下运行良好的站点,然后在其上添加JavaScript功能

根据我的经验,最简单的方法是通过Ajax提交表单(也许可以添加一个参数,让服务器知道这是Ajax请求),然后让服务器返回HTML,脚本使用HTML更新文档。

这就是所谓的。最好的方法是构建一个在关闭JavaScript的情况下运行良好的站点,然后在其上添加JavaScript功能


根据我的经验,最简单的方法是通过Ajax提交表单(也许可以添加一个参数,让服务器知道这是Ajax请求),并让服务器返回HTML,您的脚本使用HTML更新文档。

我认为没有办法支持JavaScript/非JavaScript用户(没有“支持Ajax的浏览器”)如果您希望支持常规文章和AJAX文章,您可能会至少完成两次部分工作


因此,如果你真的想支持没有JavaScript的用户(到底有多少用户?),那么就坚持使用非JS解决方案,一切都在服务器端进行。坚持使用Web 1.0,也就是;)

我认为没有一种方法可以支持JavaScript/非JavaScript用户(没有“支持AJAX的浏览器”),而不需要代码重复。如果您希望支持常规文章和AJAX文章,那么您可能会至少完成两次部分工作


所以,如果你真的想支持没有JavaScript的用户(到底有多少用户?),那就坚持使用非JS解决方案,一切都在服务器端完成。坚持使用Web1.0,即;)

我想你指的是启用JavaScript和禁用JavaScript。顺便说一句,没有支持JavaScript但不支持Ajax的浏览器,也没有“现代”浏览器——我说的“现代”是指IE6。我简直不敢相信我刚刚称IE6为“现代”。我怎么了PYes,启用JavaScript与禁用JavaScript。谢谢你的更正。我想你指的是启用JavaScript和禁用JavaScript。顺便说一句,没有支持JavaScript但不支持Ajax的浏览器,也没有“现代”浏览器——我说的“现代”是指IE6。我简直不敢相信我刚刚称IE6为“现代”。我怎么了PYes,启用JavaScript与禁用JavaScript。谢谢你的更正。
if($_SERVER['REQUEST_METHOD'] == 'POST' /* && isset($_POST['var'])*/){
    if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
        // Request was send by Ajax, so echo JSON-code
        echo '{"error": false}'
    } else {
        // No Ajax was used, so echo HTML-code
        echo '<html><head><title>Ok</title></head><body><p>Ok</p></body></html>';
    }
}