[英]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.