繁体   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