如何将PHP中的JSON数据转换为HTML?

时间:2014-06-30 14:41:25

标签: javascript html json

我是全新的,所以我有一些尝试无处可去所以我需要一些帮助,看看我的方法是否正确,如果它完全错误然后我需要一些指针,看看我应该是什么做而不是。提前致谢。

我正在尝试登录表单;我现在正在做的是将用户名变量等的HTML登录表单提交给Php,然后如果输入错误的密码则在JSON等中输入错误的密码。我可以成功登录。 但是我无法通过JavaScript获得JSON。当我点击提交时,它会通过php运行,然后在新的php页面中回显JSON。但是没有将JSON返回给html。我也在使用Twitter Bootstrap。

我的php

$password1= mysqli_real_escape_string($con,$password);
$username= mysqli_real_escape_string($con,$username);

if (!$username||!$password) {
    $no="Please enter name and password";
    echo ($no);
} else {
    //log in
    $login = mysqli_query($con, "SELECT * FROM User WHERE username='$username'")or die(mysqli_error());
    if (mysqli_num_rows($login)==0){
        echo json_encode("No such user");
    } else {
        while ($login_row = mysqli_fetch_assoc($login)) {
            //get database password
            $password_db = $login_row['password'];

            //encrypt form password
            $password1 = md5($password1);

            //check password
            if ($password1!=$password_db) {
                echo json_encode("Incorrect password");
            } else {
                //assign session
                $_SESSION['username']=$username;
                $_SESSION['password']=$password1;
                header  ("Location: http://------.com/Bootstraptest/account.html");
            }
        }
    }
}
?>

的JavaScript

<script>

var myButton = document.getElementById("signin");
    var myText = document.getElementById("result");

    myButton.addEventListener('click', getServerTime, false)

    function getServerTime() {
        var request = new XMLHttpRequest();
        var url = "http://rentaid.info/Bootstraptest/tet.php";
        request.open("GET", url, true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");


 request.onload = showTime;
        request.send();
    }
    function showTime(response) {
        var time = JSON.parse(response);
        myText.textContent = ;
    }
</script>

2 个答案:

答案 0 :(得分:0)

那部分似乎破了:

function showTime(response){     var time = JSON.parse(response);

myText.textContent =; }

这另一部分看起来也很奇怪:

$ login = mysqli_query($ con,“SELECT * FROM User WHERE username = '$ username'”)

也许我不知道你正在使用什么技术,但似乎你连接失败或者你的查询失败了。

告诉我你在那里尝试过什么?

答案 1 :(得分:0)

getServerTime中,您没有引用showTime功能。

将其更改为:

function getServerTime() {
    var request = new XMLHttpRequest();
    var url = "http://rentaid.info/Bootstraptest/tet.php";
    request.open("GET", url, true);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.onload = showTime;

    request.send();
    return false;
}
function showTime(response) {
    myText.textContent = response;
    var time = JSON.parse(response);
    //myText.textContent = time;
}

showTime中的第一行将帮助您调试,以防JSON格式出现问题。