Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ajax、jquery和php更新表中的数据?_Php_Jquery - Fatal编程技术网

如何使用ajax、jquery和php更新表中的数据?

如何使用ajax、jquery和php更新表中的数据?,php,jquery,Php,Jquery,有人能帮助我了解PHP和jQuery吗?我尝试使用PHP、jQuery和Ajax更改密码。我知道这种方法有点奇怪。但我想进一步探讨Ajax、jQuery和PHP。我想在不显示或键入当前密码的情况下更新密码。我希望我的文本框为空,如果我输入了什么,它将更改我的db表中的密码。不需要输入我的当前密码。我的问题是它没有更新我的密码。如何更新数据库密码?取决于谁登录 <?php $conn = new mysqli("localhost", "root", "", "mydb");

有人能帮助我了解PHP和jQuery吗?我尝试使用PHP、jQuery和Ajax更改密码。我知道这种方法有点奇怪。但我想进一步探讨Ajax、jQuery和PHP。我想在不显示或键入当前密码的情况下更新密码。我希望我的文本框为空,如果我输入了什么,它将更改我的db表中的密码。不需要输入我的当前密码。我的问题是它没有更新我的密码。如何更新数据库密码?取决于谁登录

<?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'];
         }
     }
 ?>