簡體   English   中英

使用AJAX提交表單無效。 它忽略了ajax

[英]Submitting form with AJAX not working. It ignores ajax

我以前從未使用過Ajax,但是從這里的研究和其他文章看來,它應該能夠運行表單提交代碼而不必重新加載頁面,但是它似乎不起作用。

它只是重定向到ajax_submit.php,就好像js文件不存在一樣。 我試圖使用Ajax來獲取ajax_submit,而無需重新加載任何內容。

我要做什么甚至有可能嗎?

HTML形式:

<form class="ajax_form" action="ajax_submit.php" method="post">
<input class="input" id="license" type="text" name="license" placeholder="License" value="<?php echo htmlentities($person['license1']); ?>" />
<input class="input" id="license_number" type="text" name="license_number" placeholder="License number" value="<?php echo htmlentities($person['license_number1']); ?>" />

<input type="submit" class="form_button" name="submit_license1" value="Save"/>
<input type="submit" class="form_button" name="clear1" value="Clear"/>
</form>

在scripts.js文件中:

$(document).ready(function(){
$('.ajax_form').submit(function (event) {
    alert('ok');
    event.preventDefault();
    var form = $(this);
    $.ajax({
        type: "POST",
        url: "ajax_submit.php",//form.attr('action'),
        data: form.serialize(),
        success: function (data) {alert('ok');}
    });
});
});

在ajax_submit.php中:

require_once("functions.php");
require_once("session.php");
include("open_db.php");

if(isset($_POST["submit_license1"])){
    //query to insert
}elseif(isset($_POST['clear1'])) {
    //query to delete
}

我在HTML中有“ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> “頭

form.serialize()不知道使用哪個按鈕提交表單,因此結果中不能包含任何按鈕。 因此,當PHP腳本檢查$_POST設置了哪個提交按鈕時,它們都不匹配。

代替在submit事件上使用處理程序,而在按鈕上使用單擊處理程序,然后將按鈕的名稱和值添加到data參數中。

$(":submit").click(function(event) {
    alert('ok');
    event.preventDefault();
    var form = $(this.form);
    $.ajax({
        type: "POST",
        url: "ajax_submit.php",//form.attr('action'),
        data: form.serialize() + '&' + this.name + '=' + this.value,
        success: function (data) {alert('ok');}
    });
});

您的ajax呼叫運行正常。 您的代碼幾乎沒有概念錯誤-

  1. form.serialize()將不附加提交按鈕的信息。

  2. 如果您想清除表格,可以使用類似的方法

$('#resetForm').click(function(){ $('.ajax_form')[0].reset(); });

  1. 最后,使用echoecho 'successful'echo failed等)完成任務並返回成功或失敗的值到ajax調用。在代碼中使用else條件。 對您來說會更清晰。

從表單中刪除“操作”和“方法”屬性。 您不需要它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM