簡體   English   中英

AJAX和PHP; 無法傳遞變量或無法正常工作?

[英]AJAX and PHP; not passing the variables or not working?

我正在為一個學期項目應用程序創建一個管理界面。

我們的最后職責是創建一個管理頁面。 除了最重要的一項:創建新用戶之外,我已經設置了管理員應該有權訪問的所有內容(更新用戶信息,刪除用戶,重置統計信息等)。

當我輸入數據創建用戶時,數據庫中沒有任何新內容顯示。 使用標准查詢(沒有變量,您將在下面看到)對其進行了嘗試,但仍然沒有任何結果使我相信它根本沒有訪問變量。

我的Javascript AJAX:

 function createNewUser()
 {
    if (confirm("Are you sure you wish to create this user?") == true)
    {
    createNewUserAJAX();
    }
 }



 function createNewUserAJAX()
 {
      var fName = document.getElementById('ADDFirstName').value;
  var lName = document.getElementById('ADDLastName').value;
  var user = document.getElementById('ADDUserName').value;
  var password = document.getElementById('ADDPassword').value;
  var password2 = document.getElementById('ADDPassword2').value;
  var slateID = document.getElementById('ADDSlate').value;
  var keeperID = document.getElementById('ADDKeeper').value;

      xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function()
  {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
          {
            alert(user+" created successfully!");
            toggleCreateUserInterface();
       }
   }

   if (password == password2)
   {
           xmlhttp.open("GET","AddUserAJAX.php?uname="+user+"&pwd="+password+"&slate="+slateID+"&keeper="+keeperID+"&fName="+fName+"&lName="+lName, true);
    xmlhttp.send();
}
else
{
    alert("Passwords must match");
}
 }

我的ADDUserAJAX.php頁面上的代碼:

<?php
$userName = mysql_real_escape_string($_GET['uname']);
$pw = mysql_real_escape_string($_GET['pwd']);
$slateID = mysql__real_escape_string($_GET['slate']);
$keeperID = mysql_real_escape_string($_GET['keeper']);
$fName = mysql_real_escape_string($_GET['fName']);
$lName = mysql_real_escape_string($_GET['lName']);

mysql_connect('127.0.0.1', 'root', '');
@mysql_select_db('slatekeeperdatabase') or die("Unable to select database");

$lastUserQuery = mysql_query("select max(userID) from users;");
$lastUserID = mysql_result($lastUserQuery,0);
$newUserID = $lastUserID+1;

$lastStatsQuery = mysql_query("select max(statsID) from stats;");
$lastStatsID = mysql_result($lastStatsQuery,0);
$newStatsID = $lastStatsID+1;


//$query= "INSERT INTO users VALUES (".$newUserID.", ".$fName.", ".$lName.", ".$pw.", ".$userName.", '', 1, 1000, 100, ".$slateID.", ".$keeperID.", ".$newStatsID.", 0)";
$query2 = "insert into users values (9, 'James','Lom', 'red','jlom4', '', 1, 1000, 100, 1, 1, 1, 0 );";
mysql_query($query2);




 mysql_close();
 ?>

$ query變量是我正在嘗試通過的變量。 $ query2只是測試查詢,以檢查它是否甚至全部通過(不是)

任何幫助深表感謝。 真是太奇怪了,因為我之前使它與測試數據一起使用(從未使它與我實際嘗試獲得的數據一起使用)。 也許我將錯誤的語法放在無法定位的地方...(哦,一切正常后將使用POST。安全性不是我們目前主要關注的問題。)

我認為您在建立mysql連接之前使用mysql_real_escape_string。 如果沒有連接,mysql_real_escape_string將不執行任何操作。

您沒有給查詢字段插入

$query2 = "insert into users (id, Name etc) values (9, 'James','Lom', 'red','jlom4', '', 1, 1000, 100, 1, 1, 1, 0 );";

我注意到"". 在您的$ query2中刪除此行,我想我也可能是一個錯誤,然后再次刪除; 那種)

要調試echo $query2請查看缺少的內容,然后嘗試直接在數據庫SQL中運行查詢

暫無
暫無

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

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