[英]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 代碼中,提交按鈕用於關閉,並為保存更改分配了一個常規按鈕,通常提交是執行提交數據並繼續的動作。
如果應該是這樣的
$('#formulariopost').submit(function(e){
....
})
並記住在 function 的末尾,如果成功,則應返回 true,否則應返回 false 以取消事件。
事件未綁定的原因可能有很多。 您可以嘗試通過幾個步驟對其進行調試。
是的,瀏覽器喜歡緩存。 確保您的頁面中加載了實際版本的 JS 文件。
如果您使用的是 Chrome,CTRL+F5 將完成這項工作。
在開發人員工具控制台中添加斷點或 - 簡單的方法 - 一些 console.logs 到代碼中的幾個點 - 例如在 document.ready 之后,在按鈕單擊之后,在 ajax 請求之前並進入 ajax 成功。 別忘了 AJAX 也可以返回錯誤碼,方法 'success' 不能處理錯誤響應。
根據代碼到達的程度(例如使用console.logs),您可以確定問題出在哪里。 如果您在 document.ready 后面看不到日志,則可能是包含文件的問題。
檢查是否發送了 AJAX 請求以及響應是什么。 您可以在“網絡”選項卡的“開發人員工具”中執行此操作。 您可以看到請求和響應正文,因此它可以幫助您確定問題所在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.