簡體   English   中英

我嘗試了一些 ajax 請求,但它不起作用

[英]I've tried to some the ajax request but it won't work

我正在嘗試向“inserir.php”發出請求,我將在此處處理來自 ajax 請求的數據並將其插入數據庫。 但是當我單擊按鈕時,什么也沒有發生……甚至沒有錯誤。 這是我的表格..:

<div class="modal-body">
                    <!-- FORM-->
                    <form method="POST" id="formulariopost">
                        <div class="form-group">
                            <label for="exampleInputEmail1" style="font-family: Arial, Helvetica, sans-serif;">Email</label>
                            <input type="email" class="form-control" id="email" aria-describedby="emailHelp" placeholder="Email" style="font-family: Arial, Helvetica, sans-serif;" required>
                            <small id="emailHelp" class="form-text text-muted" style="font-family: Arial, Helvetica, sans-serif;">Nunca vamos partilhar o seu email com mais ninguem.</small>
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1" style="font-family: Arial, Helvetica, sans-serif;">Nome da Equipa</label>
                            <input type="text" class="form-control" id="nome_equipa" placeholder="Nome da Equipa" style="font-family: Arial, Helvetica, sans-serif;" required>
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1" style="font-family: Arial, Helvetica, sans-serif;">Nickname dos jogadores</label>
                            <input type="text" class="form-control" id="nickname" placeholder="(GAMETAG)" style="font-family: Arial, Helvetica, sans-serif;" required>
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1" style="font-family: Arial, Helvetica, sans-serif;">Numero do whatsapp</label>
                            <input type="text" class="form-control" id="numero" placeholder="Numero do whatsapp" style="font-family: Arial, Helvetica, sans-serif;" maxlength="15" data-mask="(00) 00000-0000" required>
                        </div>
                        <button id="enviar" class="btn btn-secondary" >Close</button>
                        <!--<button type="submit" class="btn btn-primary" style="font-family: Arial, Helvetica, sans-serif;margin-bottom: 30px;float: right;">Submit</button>-->
                    </form>
                    <br>
                    <!--PAYPAL-->
                    <div id="paypal-button-container"></div>
                </div>
                <div class="modal-footer">
                    <button type="submit" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-primary" id="saveg">Save changes</button>
                </div>
            </div>

這是我的 javascript:

$(document).ready(function() {

        $('#saveg').click(function(e){

            e.preventDefault();

            var email = $("#email").val();
            var nome_equipa = $("#nome_equipa").val();
            var gametag = $("#nickname").val();
            var numerowhats = $("#numero").val();


            $.ajax({
                type: "POST",
                url: "inserir.php",
                dataType: "json",
                data: {email:email, nome_equipa:nome_equipa, nickname:nickname, numero:numero},
                success : function(data){
                    if (data.code == "200"){
                        alert("Success: " +data.msg);
                    } else {
                        console.log('mona');
                    }
                }
            });


        });
    });

這是我的 php ,我想在其中提出 ajax 請求:

    $servername = "localhost";
$username = "root";
$password = "root";
$dbname = "copacobre";


$email = $_POST["email"];
$nome_equipa = $_POST["nome_equipa"];
$gametag = $_POST["nickname"];
$numerowhats = $_POST["numero"];
$newURL="/copac/#";
echo $email;

$errorMSG = "error test";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$sql = "INSERT INTO pagamentos (email, nome_equipa, gametag, numerowhats)
VALUES ('".$email."', '".$nome_equipa."', '".$gametag."', ".$numerowhats.")";



$conn->close();

echo json_encode(array('code' => 200));

看起來事件綁定是錯誤的。 您需要綁定到提交事件。

同樣在您的 HTML 代碼中,提交按鈕用於關閉,並為保存更改分配了一個常規按鈕,通常提交是執行提交數據並繼續的動作。

JQuery 提交文檔

如果應該是這樣的

$('#formulariopost').submit(function(e){
    ....
})

並記住在 function 的末尾,如果成功,則應返回 true,否則應返回 false 以取消事件。

事件未綁定的原因可能有很多。 您可以嘗試通過幾個步驟對其進行調試。

清除緩存

是的,瀏覽器喜歡緩存。 確保您的頁面中加載了實際版本的 JS 文件。

如果您使用的是 Chrome,CTRL+F5 將完成這項工作。

檢查代碼走了多遠

在開發人員工具控制台中添加斷點或 - 簡單的方法 - 一些 console.logs 到代碼中的幾個點 - 例如在 document.ready 之后,在按鈕單擊之后,在 ajax 請求之前並進入 ajax 成功。 別忘了 AJAX 也可以返回錯誤碼,方法 'success' 不能處理錯誤響應。

根據代碼到達的程度(例如使用console.logs),您可以確定問題出在哪里。 如果您在 document.ready 后面看不到日志,則可能是包含文件的問題。

調試 AJAX

檢查是否發送了 AJAX 請求以及響應是什么。 您可以在“網絡”選項卡的“開發人員工具”中執行此操作。 您可以看到請求和響應正文,因此它可以幫助您確定問題所在。

暫無
暫無

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

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