gpt4 book ai didi

javascript - 通过 PHP、JSON 和 Javascript 将用户特定数据插入 HTML

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:10 25 4
gpt4 key购买 nike

我知道这个网站不喜欢“发现我的错误”代码,但我很绝望。我有一个网站需要从数据库 (PHP) 访问特定于用户的数据,将数据转换为 JSON 文件,然后更改 HTML header 以显示该特定数据。数据库表包含用户电子邮件、密码和类名等。我有一个登录页面,用于为电子邮件和密码建立 session 变量。当用户登录时,我希望将他们的类名输入到 HTML 文本中。我使用了数十种来源,主要是 W3schools,并得出了这段代码:

PHP:

<?php
session_start();

header("Content-Type: application/json; charset=UTF-8");
$obj = json_decode($_GET["x"], false);

if (!$obj) {
die(mysqli_error());
}

$servername = "localhost";
$username = "id5143969_enviroquest1";
$password = "codeteam1";
$database = "id5143969_enviroquest1";
$link = mysqli_connect($servername, $username, $password, $database);

$result = $link->query("SELECT UserClassName FROM ".$obj->UserInfo1." WHERE ".$obj->UserEmail."= '". mysqli_real_escape_string($link,
$_SESSION['useremail']) . "' and ".$obj->UserPassword." = '" . mysqli_real_escape_string($link, $_SESSION['userpassword']) . "'");

if (!$result) {
die(mysqli_error());
}

$_SESSION['classname'] = $result->fetch_assoc();

if (!$_SESSION['classname']) {
die(mysqli_error());
}

echo json_encode($_SESSION['classname']);

Javascript:

function getclassname() {
var obj, dbParam, xmlhttp, myObj, x, txt = "";
obj = { "UserInfo1":"UserClassName"};
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
document.getElementById("UserClassName").innerHTML = myObj;
}
};
xmlhttp.open("GET", "php2.php" + dbParam, true);
xmlhttp.send();
}

HTML:

<h1 class="text-center" id="UserClassName" name="UserClassName" onload= 
"getclassname()"> </h1>

我不知道出了什么问题,而且我对编码太陌生,无法自己解决。

最佳答案

试试这个(我无法测试,但是)—

PHP:

  • 删除文件末尾的?>。纯 PHP 文件应始终离开结束标记。
  • (MYSQLI_ASSOC) 更改为 () - 根据 thisthe docs ,你不需要它。

Javascript:

  • 删除 session_start() 调用
  • 改变

    for (x in myObj) {
    txt += myObj[x].name + "<br>";
    }

    txt = myObj.UserClassName

    PHP 中的 fetch_assoc() 调用为您提供了一个使用数据库字段名称的映射(根据 the docs,“数组中的每个键代表结果集列之一的名称”)对于单行。因此,如果 JSON 编码/解码工作正常,您应该能够直接引用该字段。

要对此进行测试,请在开发人员工具中,在 txt = ... 行设置一个断点,然后查看 myObj 是什么。

我认为您不需要 $objdbParam?x=,但我不建议更改它们,除非以上没有帮助。

祝你好运!

关于javascript - 通过 PHP、JSON 和 Javascript 将用户特定数据插入 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49466941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com