繁体   English   中英

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

[英]Sending value of PHP variable to Javascript document

因此,我尝试进入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根据登录的用户将值从“财富”列中删除。 我有触发此PHP的AJAX函数(ajax位于我想向其发送PHP变量的文档中)。 请注意,此函数将当前登录用户的用户名及其“分数”(变量点击)发送到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变量

谢谢阅读!

编辑:我写了Q错误...

@Ilan Kleiman小问题...我有两个单独的PHP文件,sendScore和getScore。 我错误地在问题中粘贴了错误的内容。 因此,我有在问题中可以看到的sendScore AJAX,但这会触发上面未显示的不同PHP代码,该代码实际上写入了“财富”一栏。 我有一个单独的PHP,如上所示,用于从财富列中检索书面信息(例如,当关闭选项卡时,cookie clicker如何保存点击次数,当您打开网站备份时,此代码将激活再次加载,并在“财富”中加载最后写入的值)。 我正在研究如何创建一个可以将代码生成的$ wealth PHP变量转换为javascript变量的AJAX。 对困惑感到抱歉。

编辑#2:代码

AJAX for SENDSCORE

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

console.log(“服务已回复” +响应); });

PHP的发送代码

<!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的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>

在您的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();
}

这将从PHP将“ userWealth”设置为$ wealth。

请记住,JavaScript应该与PHP在同一“服务器/网站”上,否则AJAX请求将无法工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM