簡體   English   中英

PHP Ajax不更新數據庫

[英]PHP ajax not updating database

我目前正在嘗試使用PHPAJAX更新數據庫,但這似乎無法正常工作,而且我目前無法找到錯誤的出處

這是我的代碼

PHP

<?php 
  $userid = $_GET['userid'];
  $_SESSION['userid'] = $userid;
  $sql = $db->prepare("SELECT * FROM users WHERE userid = ?");
  $sql->bindParam(1, $userid);
  $result = $sql->execute();
  while ($row = $result->fetchArray(SQLITE3_ASSOC)) 
  {
      $fname = $row['fname'];
      $lname = $row['lname'];
      $cname = $row['cname'];
      $crcnum = $row['crcnum'];
      $uemail = $row['uemail'];
      $uname = $row['uname'];
      $regas = $row['regas'];
      $caddress = $row['caddress'];
      $uaddress = $row['uaddress'];
      $package = $row['package'];
      $regdate = $row['regdate'];
      $expdate = $row['expdate'];
      $profimages = $row['profimages'];
      $coverimage = $row['coverimage'];
      ?>
      <style type="text/css">
        .loginDanger {
            width: 100%;
        }
      </style>
      <div class="upgrForm">
            <div class="logresult"></div>
            <form action="upgformexec.php" method="post" enctype="multipart/form-data">
            <?php 

            echo "<p class='pcLabel'>Current Package</p>";

            if ($package == "Gold")
            {
                echo "<p class='goldpacks'>$package</p>
                <p class='pcLabel'>This user is already on the highest package!.</p>";
            }
            if ($package == "Silver")
            {
                echo "<p class='silvpacks'>$package</p>
                <p class='pcLabel'>Ugrade Pack To</p>
            <select name='newPack' id='newPack'>
                <option>--Select--</option>
                <option>Gold</option>
            </select>
            <input type='submit' name='upgrdSub' id='upgrdSub' value='Execute Upgrade'>";
            }
            if ($package == "Bronze")
            {
                echo "<p class='bronzpacks'>$package</p>
                <p class='pcLabel'>Ugrade Pack To</p>
            <select name='newPack' id='newPack'>
                <option>--Select--</option>
                <option>Silver</option>
                <option>Gold</option>
            </select>
            <input type='submit' name='upgrdSub' id='upgrdSub' value='Execute Upgrade'>";
            }
            if ($package == "Free Membership")
            {
                echo "<p class='freepacks'>$package</p>
                <p class='pcLabel'>Ugrade Pack To</p>
            <select name='newPack' id='newPack'>
                <option>--Select--</option>
                <option>Bronze</option>
                <option>Silver</option>
                <option>Gold</option>
            </select>
            <input type='submit' name='upgrdSub' id='upgrdSub' value='Execute Upgrade'>";
            }
            ?>       
</form>

下面是執行表格的代碼

<?php 
session_start();
require_once ("db.php");
$db = new MyDb();

$userid = $_SESSION['userid'];

if (isset($_POST['upgrdSub']))
{
    $newpack = strip_tags(@$_POST['newPack']);

    $sql = $db->prepare("UPDATE users SET package = ? WHERE userid = ?");
    $sql->bindParam(1, $newpack, SQLITE3_TEXT);
    $sql->bindParam(2, $userid);
    $result = $sql->execute();

    if ($result) 
    {
        echo "true";
    }
    else
    {
        echo "false";
    }
}
?>

下面是ajax請求

$(document).ready(function() {
    $("#upgrdSub").click(function() {
      //e.preventDefault();
      newpack=$("#newPack").val();
      $.ajax({
        type: "POST",
        url: "upgformexec.php",
        data: "newPack="+newpack,
        success: function(html){
          if (html == 'true')
          {
              $(".logresult").html('<div class="loginSuccess"><i class="fa fa-tick"></i>  Upgrade Successful.</div>');
          }
          else
          {
              $(".logresult").html('<div class="loginDanger"><i class="fa fa-exclamation-triangle"></i>  Please select a package to upgrade to!.</div>');
          }
          if (html == 'false')
          {
              $(".logresult").html('<div class="loginDanger"><i class="fa fa-exclamation-triangle"></i> There was an error upgrading this account!. Please try again later.</div>');
          }
        },
        beforeSend:function()
        {
          $(".logresult").html("<img src='images/ring.gif'>");
        }
      });
      return false;
    }); 
});

出於某種原因,表單提交時沒有ajax請求,但是當我使用ajax時,我收到“請選擇要升級到的軟件包”反饋。 如何解決? 謝謝

刪除此行

if (isset($_POST['upgrdSub']))
{

按鈕值不是通過ajax請求發送的。 您只發送了newPack key => value

而是這樣做:

if (isset($_POST['newPack']))
{

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM