このビットに取り組んでから約 5 時間経ちましたが、うまく動作しません。私はいたるところを見てきましたが、私のコードは... ユニークなようです。とにかく、SQL データベースの特定のテーブルのエントリを変更しようとしています。テーブルの名前は userdb です。名前、ユーザー名、パスワード、メール、ID の 5 つのテキスト ボックスがあります。ID は、クエリが探しているエントリを検索するために必要な主キーであり、残りの 4 つのテキスト ボックスには、必要な新しいエントリが入力されています。
admin.php と呼ばれるメインの PHP ファイルの内容は次のとおりです。これは head タグにあります。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$(".test4").click(function() {
var id = $("#txUserid").val();
$.post("updateUser.php", { id: id }, function(data) {
alert(data);
});
});
});
体内のこれ:
<font color="white">Name</font><input class="test1" type="text" id="txNm" value="" onkeyup="nospaces(this)">
<font color="white">Username</font><input class="test1" type="text" id="txUsn" value="" onkeyup="nospaces(this)">
<font color="white">Password</font><input class="test1" type="password" id="txPwd" value="" onkeyup="nospaces(this)">
<font color="white">E-Mail</font><input class="test1" type="text" id="txEml" value="" onkeyup="nospaces(this)">
<font color="white">Updater - ID, only affected by the Delete & Update button.</font><input class="test1" type="text" id="txUserid" value="" onkeyup="nospaces(this)">
<input class="test4" name="Submit" type="submit" value="" id="submit"/>
これは、「mshop2.script.js」に保存されている私の updateUser 関数です。
function updateUser(){
var name = $('#txNm').val();
var username = $('#txUsn').val();
var password = $('#txPwd').val();
var email = $('#txEml').val();
var id = $('#txUserid').val();
var finalData = {
nm: name,
usn: username,
pwd: password,
eml: email,
uid: userid
};
$.post('updateUser.php', finalData, function(resp){
if(resp == 'success'){
alert('User successfully modified.');
getUserList();
}
});
}
これは私の updateUser.php ファイルです:
<?php
include 'config.php';
$nm = mysql_real_escape_string($_POST["nm"]);
$usn = mysql_real_escape_string($_POST["usn"]);
$pwd = mysql_real_escape_string($_POST["pwd"]);
$eml = mysql_real_escape_string($_POST["eml"]);
$id = mysql_real_escape_string($_POST["id"]);
$sql = "SELECT ID FROM userdb WHERE ID='$id'";
$result = mysql_query($sql);
if(mysql_num_rows($result) >0)
{
//found
$q = "UPDATE userdb
SET `name` = '$nm',
`username` = '$usn',
`password` = '$pwd',
`email` = '$eml'
WHERE ID ='$uid'";
}
else
{
//not found
die('Error: The ID does not exist.' . mysql_error());
echo mysql_error();
}
$result = mysql_query($q);
if(empty($_POST['nm'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['usn'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['pwd'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['eml'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['uid'])) {
die('You need to enter a value for the Name field');
}
if(empty($_POST['id'])) {
die('You need to enter a value for the Name field');
}
if(!mysql_query($q, $con)){
die('Error: ' . mysql_error());
echo mysql_error();
}else{
echo 'success';
}
mysql_close($con);
?>
IDテキストボックスに「50」と入力した場合、入力したい意図したエントリが機能しない原因がわかりません。ID は同じままですが、残りのフィールドは空です。今回は何を間違えたのですか?