将PHP变量的值发送到Javascript文档

时间:2017-01-26 02:56:13

标签: javascript php jquery mysql ajax

所以我试图进入MySQL表并绘制一个值。我有以下PHP这样做:

<!DOCTYPE html>
<html>
<body>
<?php
$username = strval($_GET['userName']);

$con = mysqli_connect('localhost','PRIVATE','PRIVATE','PRIVATE');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
} else {
$sql="SELECT * FROM users WHERE username = '".$username."'";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
    $wealth = $row['wealth'];
    echo $wealth;
    }
}

mysqli_close($con);
//return $wealth;
?></body>
</html>

出于安全原因,我将PRIVATE放在数据库ID和密码的位置。从本质上讲,这个PHP从“财富”中获取价值。列根据登录用户。我有这个AJAX函数触发这个PHP(ajax位于我希望发送PHP变量的文档内)。请注意,此功能会发送当前登录用户的用户名及其分数&#39; (var的点击)到PHP。

function sendScore() {

$.post("sendScore.php",{username:localStorage.getItem('userName'),wealth:clicks},function(response){
   console.log("The service replied"+response);
});

}

现在,我知道我检索的值等于PHP变量$ wealth。我也明白PHP是基于服务器的,Javascript / html是基于客户端的,所以你不能简单地进入另一个文档并找到变量的值。我想将$ wealth的值分配给名为:userWealth

的javascript变量

感谢阅读!

编辑:我说错了......

@Ilan Kleiman小问题...我有两个单独的PHP文件,sendScore和getScore。我错误地在问题中贴错了。所以,我有一个你可以在问题中看到的sendScore AJAX,但这会触发一个不同的PHP代码,这个代码不会在上面显示,它基本上写入了财富&#39;柱。我有一个单独的PHP片段,如上所示,用于从财富列中检索书面信息(比如cookie点击器如何保存关闭标签时的点击次数,当您打开网站备份时,此代码会激活再次,它将最后写入的值加载到财富中。我正在研究如何创建一个AJAX,它可以将代码生成的$ wealth PHP变量转换为javascript变量。对不起,感到困惑。

编辑#2:代码

AJAX for SENDSCORE

$.post("sendScore.php",{username:localStorage.getItem('userName'),wealth:clicks},function(response){

console.log(&#34;服务回复&#34; +响应);     });

PHP for SENDSCORE

<!DOCTYPE html>
<html>
<body>
<?php
$username = strval($_POST['username']);
$wealth = strval($_POST['wealth']);

$con = mysqli_connect('localhost','PRIV','PRIV','PRIV');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
} else {

$sql = "UPDATE users SET wealth=".$wealth." WHERE username='".$username."'";
$result = mysqli_query($con,$sql);

}

mysqli_close($con);

?></body>
</html>

AJAX for GETSCORE是我在寻找什么

PHP for GETSCORE

<!DOCTYPE html>
<html>
<body>
<?php
$username = strval($_GET['userName']);

$con = mysqli_connect('localhost','PRIV','PRIV','PRIV');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
} else {
$sql="SELECT * FROM users WHERE username = '".$username."'";
$result = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($result)) {
$wealth = $row['wealth'];
echo $wealth;
}
}

mysqli_close($con);
//return $wealth;
?></body>
</html>

1 个答案:

答案 0 :(得分:0)

在您的PHP文件中:

变化

echo $wealth;

echo "<div id='wealth'>" . $wealth . "</div>";

AJAX请求:

var userWealth;
function getScore() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            userWealth = document.getElementById("wealth").innerHTML;
            alert(userWealth);
        }
    };
    xhttp.open("GET", "getScore.php", true);
    xhttp.send();
}

这将设置&#34; userWealth&#34;来自PHP的$ rich。

请记住,Javascript应该在同一个&#34;服务器/网站&#34;作为PHP,否则AJAX请求不会起作用。