如何使用ajax、jquery和php更新表中的数据?
有人能帮助我了解PHP和jQuery吗?我尝试使用PHP、jQuery和Ajax更改密码。我知道这种方法有点奇怪。但我想进一步探讨Ajax、jQuery和PHP。我想在不显示或键入当前密码的情况下更新密码。我希望我的文本框为空,如果我输入了什么,它将更改我的db表中的密码。不需要输入我的当前密码。我的问题是它没有更新我的密码。如何更新数据库密码?取决于谁登录如何使用ajax、jquery和php更新表中的数据?,php,jquery,Php,Jquery,有人能帮助我了解PHP和jQuery吗?我尝试使用PHP、jQuery和Ajax更改密码。我知道这种方法有点奇怪。但我想进一步探讨Ajax、jQuery和PHP。我想在不显示或键入当前密码的情况下更新密码。我希望我的文本框为空,如果我输入了什么,它将更改我的db表中的密码。不需要输入我的当前密码。我的问题是它没有更新我的密码。如何更新数据库密码?取决于谁登录 <?php $conn = new mysqli("localhost", "root", "", "mydb");
<?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!";
}
}
?>
更改密码
更改密码
你的新密码
更改密码
要访问数组,密钥必须在引号中,如so['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!");
此外,要访问超级变量$\u SESSION
,必须先使用SESSION\u start()
,然后才能访问该变量
此外,没有疑问,但一个关键点移动,你的查询很容易,你应该考虑。
< P>首先,我认为你的代码忽略了一个非常重要的语句,即<代码> SeSistOxSistar()/<代码>语句。 其次,id
会话不能以您在代码中调用它的方式调用,您必须添加这样的引号$\u session['id']
您还需要在WHERE子句中添加引号,使其成为如下所示的有效语句:WHERE id='$\u SESSION['id']'
。
同样,您以错误的方式访问$\u POST
数组,您必须添加这样的引号$\u POST['new\u 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!";
}
}
?>
header('Content-Type:application/json')
在PHP脚本的顶部,然后使用json\u encode()
对输出进行编码,以便Javascript可以读取输出。此外,还需要连接SQL…SET password='“$\u POST['new\u password']”WHERE…
我应该把会话启动()
放在php文件顶部未定义索引:id
POST下面的哪里http://localhost/foldername/change.php 404(未找到)jquery.js:4
您的错误是自我解释的,$\u SESSION['id']
为空,您还没有设置它,并且当前目录中不存在change.php
,您必须将文件存在的绝对路径放在它不存在的地方;你不能更新我的密码吗?我的jQuery和Ajax有问题吗?请尝试更改$conn=newmysqli('localhost','root','','mydb);'
到$con=newmysqli('localhost','root','mydb')或die(mysqli_错误($con))
并查看是否存在任何mysqli错误Same sir没有错误,密码没有任何更改。请添加echo'
ID:'。$\U会话['ID']
到if($checkUser->num_rows>)语句
并告诉我当前输出是什么?还要检查会话_start()之前是否有空格编码>并删除它们这是第7行C:xampp\htdocs\userAndAdmin/change.php中的警报框中的错误,解析错误:语法错误,意外',预期标识符(T_字符串)或变量(T_变量)或数字(T_NUM_字符串)
<?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'];
}
}
?>