php - 设计表单处理以支持支持 AJAX 的浏览器和非 AJAX 浏览器的最简洁的方法是什么?

标签 php javascript ajax

我正在使用 PHP,想知道处理简单 POST 和 AJAX POST 的最佳方法是什么,而无需以最简单的方式重复代码。谢谢!

最佳答案

只需创建一个这样的表单:

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

看看在 formhandler.php 中触发了什么样的请求:

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>';
    }
}

您唯一需要知道的是 $_SERVER['HTTP_X_REQUESTED_WITH'] 包含表单是否由 Ajax 请求提交的信息

关于php - 设计表单处理以支持支持 AJAX 的浏览器和非 AJAX 浏览器的最简洁的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342842/

相关文章:

javascript - jquery-ui.css 和 jquery-ui.css 有什么区别?s2j=3.3.1

javascript - lodash:从对象数组中的属性数组创建组

javascript - 如何在点击时将 z-index 较高的 div 调用到顶部?

javascript - ajax 请求时对 JS 变量的 JSON 响应

php - 在 PHP 中处理用户统计信息的最佳方式是什么

php - 使用 Zend_Db 将 php boolean 值插入 mysql 位列

php - 如何使用 isset 值缩短代码

php - 如何检测 URL 中特定页面的存在?

javascript - 有时卡住浏览器后的 Ajax 请求

php - 使用参数数组进行 ajax 查询