[英]How to I update data from the table using ajax, jquery and php?
有人可以帮助我的 PHP 和 jQuery 吗? 我尝试使用 PHP、jQuery 和 Ajax 更改我的密码。 我知道这种方法有点奇怪。 但我想更多地了解 Ajax、jQuery 和 PHP。 我想在不显示或输入当前密码的情况下更新我的密码。 我希望我的文本框为空,如果我输入一些内容,它将更改我的数据库表中的密码。 不需要输入我当前的密码。 我的问题是它没有更新我的密码。 如何更新我的数据库密码? 取决于谁登录。
<?php
$conn = new mysqli("localhost", "root", "", "mydb");
if(isset($_POST["btnChange"])) {
$checkUser = $conn->query("SELECT * FROM tbl_user WHERE id= $_SESSION[id]");
if ($checkUser->num_rows > 0) {
$conn->query("UPDATE tbl_user SET password = '$_POST[new_password]' WHERE id= $_SESSION[id]");
echo "Update Successfully!";
}
}
?>
$(document).ready(function(){ $("#btnChange").click(function(){ $.ajax({ url:"insert.php", method:"post", data:{btnChange: "", new_password: $("#new_password").val(),}, success: function(data){ alert(data); } }); }); });
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery/jquery.js"></script> <script src="changeapasswordjs.js"></script> <title>Change password</title> </head> <body> <h1>Change password</h1> <form id="simpleForm"> <div> <label for="new_password">Your new_password</label> <input type="password" name="new_password" id="new_password" /> </div> <br> <div> <button id="btnChange">Change password</button> </div> </form> </body> </html>
要访问数组,键必须像['key']
那样用引号引起来。 此外,您可以将{}
包裹在变量周围以将其输出到字符串中。
// First query you do
$checkUser = $conn->query("SELECT * FROM tbl_user WHERE id = '{$_SESSION['id']}'");
// Second query you do
$conn->query("UPDATE tbl_user SET password = '{$_POST['new_password']}' WHERE id = '{$_SESSION['id']}'");
您还缺少您正在输出的内容类型,应该在 json 中对您的响应进行编码:
header('Content-Type: application/json');
echo json_encode("Update Successfully!");
此外,要访问超级变量$_SESSION
您必须在访问该变量之前首先使用session_start()
。
首先,我认为您的代码遗漏了一个非常重要的语句,即session_start()
语句。
其次,不能以您在代码中调用它的方式调用id
会话,您必须添加这样的引号$_SESSION['id']
。
您还需要在WHERE clause
添加引号,使其成为如下所示的有效语句: WHERE id = '$_SESSION['id']'
。 同样,您以错误的方式访问$_POST
数组,您必须添加这样的引号$_POST['new_password']
。
纠正这些错误后,最终的代码应该是这样的:
<?php
session_start(); //Initializing session
$conn = new mysqli("localhost", "root", "", "mydb");
if(isset($_POST["btnChange"])) {
$checkUser = $conn->query("SELECT * FROM tbl_user WHERE id='".$_SESSION['id']."'");
if ($checkUser->num_rows > 0) {
$conn->query("UPDATE tbl_user SET password = '".$_POST["new_password"]."' WHERE id='".$_SESSION['id']."'");
echo "Update Successfully!";
}
}
?>
请将代码复制到这里,如果用户不存在,建议使用else
语句。
<?php
session_start(); //Initializing session
$conn = new mysqli("localhost", "root", "", "mydb");
if(isset($_POST["btnChange"])) {
$checkUser = $conn->query("SELECT * FROM tbl_user WHERE id='".$_SESSION['id']."'") or die(mysqli_error($conn));
if ($checkUser->num_rows > 0) {
$conn->query("UPDATE tbl_user SET password = '".$_POST['new_password']."' WHERE id='".$_SESSION['id']."'");
echo "ID: ".$_SESSION['id'];
}
else {
echo "User doesn't exist.";
echo "<br>ID: ".$_SESSION['id'];
}
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.