简体   繁体   English

我的 Ajax 返回成功但未更新 mysql 数据库

[英]My Ajax is returning success but not updating mysql database

Whenever I submit my form my session[''playerPlan] always returns the plan of the user before it.每当我提交表单时,我的 session[''playerPlan] 总是返回之前用户的计划。 So I decided to update the user's plan after submit.所以我决定在提交后更新用户的计划。 So far it's been going good, I've been getting the success message but ajax is not updating the database.到目前为止一切顺利,我收到了成功消息,但 ajax 没有更新数据库。 Here's my echoed query(for user number 115): UPDATE KingOfQuiz SET plan = '2' WHERE id = 115 LIMIT 1 .这是我的回显查询(对于用户号 115): UPDATE KingOfQuiz SET plan = '2' WHERE id = 115 LIMIT 1 I'm not looking for SQL injections right now because this is just testing on localhost.我现在不是在寻找 SQL 注入,因为这只是在 localhost 上进行测试。

Form(not the issue but for id's):表格(不是问题,而是身份证):

<form action="actionSignUp.php" method="post" id="signupForm" class="signupForm">
              <h2>Signup</h2>
                <input type="hidden" name="loginActive" id="loginActive" value="0">
                <br>
            <div class="form-group row">
            <label for="username" class="col-lg-16 col-form-label">Username:</label>
            <div class="col-lg-8">
            <input type="text" class="form-control signupInput" name="username" id="username" aria-describedby="username" autocomplete="username" autofocus required>
            </div>
            <p><span class="error"><?php echo $usernameError;?></span><p>
                </div>
          <div class="form-group row">
            <label for="password" class="col-lg-16 col-form-label">Password:</label>
            <div class="col-lg-8">
            <input type="password" class="form-control signupInput" id="Password" name="password" autocomplete="current-password" required>
              </div>
              <p><span class="error"><?php echo $passwordError;?></span><p>
            </div>
            
            <h4>Account Type <i class="far fa-question-circle info" data-toggle="tooltip" data-placement="right" title="Whenever you have all free accounts checked, payment method should be hidden, but if not then click on any paid account and then click back!" height="16px"></i></h4>
            <p>Visit <a href="pricing.php">Plan</a> for pricing details.</p>
              <div class="input-group-prepend row">
                  <input type="button" class="dropdown-item col-md-4 active dropdownI plan" value="Player: Free Account $0.00/Mo" class="FA playAccount" id="dfreePlayerAccount" name="fa">
                  <input type="button" class="dropdown-item col-md-4 dropdownI plan" value="Player: Pro Account $5.99/Mo" class="FA" id="dproPlayerAccount" name="pa">
                  <input class="dropdown-item col-md-4 dropdownI plan" value="Player: Premium Account $9.99/Mo" class="FA" id="dpremiumPlayerAccount" name="pra">
              </div>
                <br>
              <input type="radio" id="freePlayerAccount" class="free readonly" name="account" value="1" checked>
              <label for="freePlayerAccount">Player: Free Account $0.00/Mo</label><br>
              <input type="radio" id="proPlayerAccount" class="paid readonly" name="account" value="2">
              <label for="proPlayerAccount">Player: Pro Account $5.99/Mo</label><br>
              <input type="radio" id="premiumPlayerAccount" class="paid readonly" name="account" value="3">
              <label for="premiumPlayerAccount">Player: Premium Account $9.99/Mo</label><br>
              <hr>
                 <h5>Optional:</h5>
                 <div class="row">
                  <input type="button" class="dropdown-item col-sm-6 CA" value="Creator: Pro Account $9.99/Mo" name="pca" id="dproCreatorAccount">
                  <input type="button" class="dropdown-item col-sm-6 CA" value="Creator: Premium Account $14.99/Mo" id="dpremiumCreatorAccount" name="prca">
                  </div>
            <br>
              <input type="radio" id="creatorProAccount" class="paid creatorAccount readonly" name="creatorAccount" value="5">
              <label for="creatorProAccount">Creator: Pro Account $9.99/Mo</label><br>
              <input type="radio" id="creatorPremiumAccount" class="paid creatorAccount readonly" name="creatorAccount" value="6">
              <label for="creatorPremiumAccount">Creator: Premium Account $14.99/Mo</label><br>
                <hr>
            <div class="hiddenPaymentMethod"> <h5>Payment Method</h5>
              <input type="radio" id="Paypal" name="payment" value="Paypal" class="payment">
              <label for="Paypal">Paypal</label><br>
              <input type="radio" id="creditCard" name="payment" value="CreditCard" class="payment">
              <label for="creditCard">Credit Card</label><br>
              <input type="text" style="display:none;" name="creditCardNumber" id="creditCardNumber" placeholder="Card Number">
              <input type="radio" id="debitCard" name="payment" value="DebitCard" class="payment">
          <label for="debitCard">Debit Card</label>
               <input type="text" style="display:none;" name="debitCardNumber" id="debitCardNumber" placeholder="Card Number"> 
                <br></div>
                <br>
            <input type="checkbox" id="termsAndConditions" class="conditions" name="termsandconditions" value="0">
            <label for="termsAndConditions"> I have read and agreed to the Terms and Conditions <span data-toggle="modal" data-target="#exampleModal"><i class="far fa-question-circle questionMark"></i></span></label>
            <p id="errors"></p>
            <p id="tacError" style="color:red"></p>
            <input type="submit" class="btn btn-primary" name="signupButton" id="signUpButton" value="Submit">
        </form> 

My ajax (The second ajax is the updating one):我的 ajax (第二个 ajax 是更新的):

$("#signUpButton").click(function() { 
                    $.ajax({
                        type: "POST",
                        url: "actionSignUp.php",
                        data: "username=" + $("#username").val() + "&password=" + $("#Password").val() + "&termsandconditions=" + $("#termsAndConditions").val() + "&fa=" + $("#dfreePlayerAccount").val() + "&pa=" + $("#dproPlayerAccount").val() + "&pra=" + $("#dpremiumPlayerAccount").val() + "&pca=" + $("#dproCreatorAccount").val() + "&prca=" + $("#dpremiumCreatorAccount").val() + "&account=" + $(".playAccount").val() + "&loginActive=" + $("#loginActive").val()
                    }).done(function(result)  {
                            $("#errors").html(result);
                        }).fail(function(xhr, textStatus, errorThrown) {
                        
                            alert("Error Requesting. Please Try Again Later.");
                        
                        });

                    }); 

                $(document).ready(function(){
                  $('#signupForm').on('submit' , function(e){
                    e.preventDefault();
                    var plan = $('.playAccount').val();
                    var key = "";
                    var value = "";
                    if (plan == $("#dfreePlayerAccount").val()) {
                      key = "fa";
                      value = $("#dfreePlayerAccount").val();
                    } else if (plan == $("#dproPlayerAccount").val()) {
                      key = "pa";
                      value = $("#dproPlayerAccount").val();
                    } else if (plan == $("#dpremiumPlayerAccount").val()) {
                      key = "pra";
                      value = $("#dpremiumPlayerAccount").val();
                    }
                    var data = {
                      plan: plan
                    };
                    data[key] = value;
                    $.ajax({
                      method: "POST",
                      url: "ChangeUserPlan.php",
                      data: data
                    }).done(function(updated){
                        console.log(updated);
                    }).fail(function(xhr, textStatus, errorThrown) {
                         console.log("Error Requesting. Please Try Again Later.");
                    });
                  });
                });

Updating User PHP:更新用户 PHP:

require('signup.php');
    $link = mysqli_connect("****", "****", "Nice Try", "Nope, Not giving it");
    
     
    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);
          
    }
    $_SESSION['playerPlan'] = "1";
            if(isset($_REQUEST['fa'])) {
                $_SESSION['playerPlan'] = "1";
            }
            if(isset($_REQUEST['pa'])) {
                $_SESSION['playerPlan'] = "2";
            }
            if(isset($_REQUEST['pra'])) {
                $_SESSION['playerPlan'] = "3";
            }
   
    $playingPlan = $_SESSION['playerPlan'];
   
    if($_SERVER["REQUEST_METHOD"] == "POST") {
        echo $_SESSION['playerPlan'];
        $query = "UPDATE KingOfQuiz SET plan = '". $playingPlan."' WHERE id = ".$_SESSION['id']." LIMIT 1";
        mysqli_query($link, $query);
        echo $query;

    } else {
        echo "Sorry Try Again Later.";
    }

My table had the wrong name我的桌子有错误的名字

The table that had to be updated was users.必须更新的表是用户。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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