提交表格并重新加载

时间:2016-11-30 19:02:08

标签: javascript php jquery ajax forms

目前,我有一个带有多选复选框的表单。提交时,它会发布到一个PHP脚本,其中的数组类似于: 和ID%5B%5D = 3和ID%5B%5D = 7

HTML:

<form id="frm-example" action="vmwaressl_admin_process.php" method="POST">

php脚本循环遍历数组,并为所选的每一行执行SQL更新。然后该脚本使用header()函数重定向回页面。

PHP:

<?php
foreach ($_POST['id'] as $key => $idValue) {
    $host_id_sql = "query";
    $stmt        = sqlsrv_query($conn, $host_id_sql);
    if ($stmt === false) {
        die(print_r(sqlsrv_errors(), true));
    }
    while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
    $host_id = $row['HOST_ID'];

    }
    $host_update_sql = "update query";
    $stmt            = sqlsrv_query($conn, $host_update_sql);
    if ($stmt === false) {
        die(print_r(sqlsrv_errors(), true));
    }
    $host_id_sql = null;
    $stmt        = null;
}

header('Location: home_page.php');
?>

我的问题是关于页面刷新。有没有办法提交表单但不刷新页面?我在想ajax,但我不确定如何实现它。

感谢。

1 个答案:

答案 0 :(得分:1)

将表单标记更改为: -

<form id="frm-example">

并在脚本标记中添加: -

$('#frm-example').on('submit', function (e) {
        if (!e.isDefaultPrevented()) {
            var url = "vmwaressl_admin_process.php";

            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(),
                success: function (data)
                {
                    //Whatever You want to do on success
                }
            });
            return false;
        }
    })