php - 最简单的表单提交而不重定向?

标签 php jquery ajax forms

所以我在这个项目上一直在自杀,也许是因为我尝试过困难的方式:)我一直在尝试转换以下动态PHP表单以提交相同的信息,但是通过AJAX,我没有经验中,但我想在不离开页面的情况下提交。

在研究“每个 PHP 程序员应该知道的事情”( http://terrychay.com/article/php-coders.shtml ) 并准备对潜在程序员进行电话面试时,有人向我介绍了使用远程脚本和 iframe 完成相同任务的不同方法。意识到可能有数十种方法可以做到这一点,那么采用以下表单并在不离开页面的情况下提交它的“最佳”方法是什么?由于我最了解 PHP,是否有一种更适合我,或者我应该继续使用 AJAX?

<form action="functions.php?do=save" method="POST" id="saveSettings">
<table width=100%>
<tr><th>Setting</th><th>Value</th><th>Active</th></tr>
<?
include 'db.php';

$i=0;
    foreach($db->query('SELECT * from settings') as $row) {
    echo ($i % 2)?'<tr class="odd">':'<tr class="even">';
        print_r("<td width=200>" . $row[1] . "</td>
        <td><input type=\"textbox\" name=\"" . $row[1] . "[]\" value=\"" . $row[2] . "\"></td> 
        <td><input type=\"hidden\" name=\"" . $row[1] . "[1]\" value=\"INACTIVE\"> "); //set value so it never passes NULL
            if ($row[3] == "ACTIVE"){
            print_r("<input type=\"checkbox\" name=\"" . $row[1] . "[1]\" value=\"ACTIVE\" checked=\"true\"></td></tr>");
            }
            else{
            print_r("<input type=\"checkbox\" name=\"" . $row[1] . "[1]\" value=\"ACTIVE\"></td></tr>");

            }
    $i++;
    }
?>
</tbody>
</table>
<input type="submit" value="Save Settings">
</form>

最佳答案

这非常简单,实际上,您所需要做的就是以下 jQuery:

$('form').on('submit', function(){
    var $this = $(this);
    $.ajax({
        type: $this.prop('method'),
        url: $this.prop('action'),
        data: $this.serialize(),
        success: function(data){
          //do something with the return of the php script
        }
    });
    return false; //prevent the form from causing the page to refresh
});

$.serialize()用于将表单转换为 URL 编码的文本字符串。这使得获取 php 脚本中的值变得简单,因为考虑到上面表单的结构,不需要任何更改。

关于php - 最简单的表单提交而不重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23275284/

相关文章:

javascript - AJAX 将数据传递给 PHP

php - 如何在wordpress中生成顺序编号

PHP MYSQL - 下拉选择依赖于先前的下拉菜单

php - 如何从网页中获取内部链接?

php - 基于值构建嵌套数组

php - Ajax执行php而不刷新-如何设置变量?

jquery - 数据属性中的正则表达式--jquery

javascript - 更新 td 的值而不需要重新加载页面

php - 如何确定 PHP 页面回发给 AJAX 调用的内容

javascript - 使用 Ajax 请求 Rails Controller 数据