javascript - 变量未定义,即使它已定义?

标签 javascript php ajax http

您好,我正在尝试在按下按钮时调用 php 函数,但我不断在标题中收到错误消息。

我像这样调用该函数:

echo("<th><input type='button' name = 'Attack_Btn' onclick = 'FightPlayer(".$row['username'].")' value ='Attack'></th>");

只要说出从 $row['user... is James 获得的用户名,就会显示错误

index.php:1 Uncaught ReferenceError :casualjames 未定义

这是接下来调用的代码

    function FightPlayer(enemyName){
    var xhttpe;
    if (window.XMLHttpRequest) {
        xhttpe = new XMLHttpRequest();
        } else {
        xhttpe = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xhttpe.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            BattlePlayers();
        }
    };
    xhttpe.open("GET", "FightPlayer.php?enemyname="+enemyName, true);
    xhttpe.send();
}

然后它调用我的 php 脚本并传入变量 enemyname 供其使用

    <?php
    session_start();
    include 'Training.php';
    $link = mysqli_connect("","","","");

    if (isset($_SESSION['username'])) {
        $enemyname = $_REQUEST["enemyname"];
        echo $enemyname;
        $energyRemove = 1;
        $ExperienceGain = 1;
        $sql = "SELECT * FROM userstats WHERE username = '$enemyname'";
        $result = mysqli_query($link,$sql);
        $row = mysqli_fetch_assoc($result);
        $Defence = $row["Defence"];
        $winChance = CalculateWinChance($link,$Defence);
        $sql = "SELECT Energy FROM userstats WHERE username = '".$_SESSION['username']."'";
        $result = mysqli_query($link,$sql);
        $row = mysqli_fetch_assoc($result);
        $rand = rand ( 1 , 100 );
        if($row["Energy"] < 1 ){
                echo "<script type='text/javascript'>alert('Not enough energy to fight. please restore in character page');</script>";
        }else{
            if($rand < $winChance){
                $_SESSION['Battlemessage'] = "you won against ".$enemyname;
                $sql = "UPDATE userstats SET `Energy` = `Energy` - '$energyRemove' WHERE username = '".$_SESSION['username']."'";
                mysqli_query($link,$sql);
                $sql = "UPDATE userstats SET `Experience` = `Experience` + '$ExperienceGain' WHERE username = '".$_SESSION['username']."'";
                mysqli_query($link,$sql);
                $sql = "UPDATE userstats SET `Satoshi` = `Satoshi` + 2 WHERE username = '".$_SESSION['username']."'";
                mysqli_query($link,$sql);
            }else{
                $_SESSION['Battlemessage'] = "you lost against ".$enemyname;
                $sql = "UPDATE userstats SET `Energy` = `Energy` - '$energyRemove' WHERE username = '".$_SESSION['username']."'";
                mysqli_query($link,$sql);
                $sql = "UPDATE userstats SET `Satoshi` = `Satoshi` + 1 WHERE username = '".$enemyname."'";
                mysqli_query($link,$sql);
            }
            echo "";
        }
        calculateLevel($link);
    }
?>

我不确定错误实际发生在哪里,我已将我的脚本通过在线代码检查器,一切都恢复正常。我哪里出错了?

最佳答案

您传递给 JavaScript 函数的字符串需要加引号,否则它会认为它是一个变量:

echo("<th><input type='button' name = 'Attack_Btn' onclick = 'FightPlayer(\"".$row['username']."\")' value ='Attack'></th>");

关于javascript - 变量未定义,即使它已定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623836/

相关文章:

javascript - Node.js 服务器问题 - 在浏览器中查找文件时添加了 "/"

javascript - 错误 : Uncaught TypeError: Cannot read properties of undefined (reading 'map' )

javascript - 集成 KnockoutJS 可观察对象和 YUI 小部件

javascript - jQuery Multiselect 插件返回空长度(应该是 0?)

javascript - 如何使用MySQL、PHP和AJAX逐步填充表格数据

javascript - 使用 JSON 更新 Chart.js,无法读取未定义的属性 'length'

php - MYSQL无法插入mediumtext列

PHP 数组保存到文本文件

php - 试图在数据库中存储 IP 地址。错误

php - 使用 AJAX 检索 JSON 数据