繁体   English   中英

使用 ajax 更新 Mysql 数据库表

[英]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);
?>

好的,让我指导你一点

  • 通过重复此 ajax 代码和 if/else 语句并通过检查.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>

  • 仅使用一个 ajax 和一个 php 文件来更改基于 select 值的计划使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM