[英]Update Mysql database table using ajax
每当我单击提交按钮时,我的 ajax 都没有给我一个成功错误或失败错误。 我的 MySQL 设置正确。 我想更新我的数据库,因为由于某种原因,PHP 只是将 3 放在一列中,所以我只想将其更新为实际的帐户类型(1、2、3、&4、&5)。 我在提交按钮上有 2 个 ajax 函数,所以可能是这种情况,但我见过有超过 2 个 ajax 函数的网站,所以这不应该是问题。 我认为这与 ajax 中的数据有关,但我不知道该放什么。
ajax:
$("#signUpButton").click(function(){
if($("#dproPlayerAccount").html() === "Pro Player Account") {
$.ajax({
type: "POST",
url: "proPlayAccountClicked.php",
dataType: "json"
}).done(function(proUpdate){
console.log(proUpdate);
}).fail(function(xhr, textStatus, errorThrown) {
console.log("Error Requesting. Please Try Again Later.");
}); }
else if($("#dfreePlayerAccount").text() === "Free Player Account") {
$.ajax({
type: "POST",
url: "freePlayAccountClicked.php",
dataType: "json"
}).done(function(freeUpdate){
console.log(freeUpdate);
}).fail(function(xhr, textStatus, errorThrown) {
console.log("Error Requesting. Please Try Again Later.");
});
}
else if($("#dpremiumPlayerAccount").text() === "Premium Player Account") {
$.ajax({
type: "POST",
url: "premiumPlayAccountClicked.php",
dataType: "json"
}).done(function(update){
console.log(update);
}).fail(function(xhr, textStatus, errorThrown) {
console.log("Error Requesting. Please Try Again Later.");
});
}
else if($("#dproCreatorAccount").text() === "Pro Creator Account") {
$.ajax({
type: "POST",
url: "proCreatorAccountClicked.php",
dataType: "json"
}).done(function(cproUpdate){
console.log(cproUpdate);
}).fail(function(xhr, textStatus, errorThrown) {
console.log("Error Requesting. Please Try Again Later.");
}); }
else if($("#dpremiumCreatorAccount").text() === "Premium Creator Account") {
$.ajax({
type: "POST",
url: "premiumCreatorAccountClicked.php",
dataType: "json"
}).done(function(cpremiumUpdate){
console.log(cpremiumUpdate);
}).fail(function(xhr, textStatus, errorThrown) {
console.log("Error Requesting. Please Try Again Later.");
});
}
})
我的 PHP 文件具有相同的内容,但只是计划的值不同。 例如 plan="1"(2, 3, &4, &5)。
<?php
session_start();
$link = mysqli_connect("********", "********", "********", "********");
if(mysqli_connect_error()) {
die("Couldn't connect to the database. try again later.");
}
$query = "SELECT * FROM `users`";
if($result = mysqli_query($link, $query)) {
$row = mysqli_fetch_array($result);
}
//The plan value is different for the 5 different PHP files.
$query = "UPDATE KingOfQuiz SET plan='1' WHERE ".$row['id'];
echo json_encode($query);
?>
好的,让我指导你一点
.html() ==
和.text() ==
来更改计划,这不是一件好事.. 最好捕获无线电输入的值或select 无论你使用什么......检查下一个例子 $(document).ready(function(){ $('#singupform').on('submit', function(e){ e.preventDefault(); var plan = $('#plan').val(); console.log(plan); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="singupform"> <label>Select Your Plan</label> <select id="plan"> <option value="1">Free</option> <option value="2">Pro</option> <option value="3">Premium</option> </select> <button id="signupbutton">Submit</button> </form>
data: {}
也不需要dataType: 'json'
而你只检查一件事 $(document).ready(function(){ $('#singupform').on('submit', function(e){ e.preventDefault(); var plan = $('#plan').val(); $.ajax({ type: "POST", url: "ChangeUserPlan.php", data: {plan: plan}, }).done(function(updated){ console.log(updated); }).fail(function(xhr, textStatus, errorThrown) { console.log("Error Requesting. Please Try Again Later."); }); }); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <form id="singupform"> <label>Select Your Plan</label> <select id="plan"> <option value="1">Free</option> <option value="2">Pro</option> <option value="3">Premium</option> </select> <button id="signupbutton">Submit</button> </form>
在你的 ChangeUserPlan.php
echo $_post['plan'];
在此之后,您的代码应在控制台中返回计划值。然后开始更新表并在 php 中针对 sql 注入进行检查...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.