getElementId returns null or undefined

getElementId returns null or undefined

本文关键字:undefined or null returns getElementId      更新时间:2023-09-26

我使用PHP, AJAX和jQuery,所以当这个if语句处理时,它将显示所有被选中的球员,并放置一个移除按钮和一个onclick="removeplayer(test);"。但是当我点击"Remove player"按钮时,我将得到nullundefined

PHP

   if(count($_SESSION['players'],COUNT_RECURSIVE) == $_SESSION['savedPlayers'] )
{
    foreach($_SESSION['players'] as $key => $value){
    echo "Player #:  . $key . ; Player Name: . $value . 'n";
    echo "<input type='"button'" name='"" . $key . " '" id='"" .  $value . "  '" value='"Remove'" onclick='"removePlayer(" . $value . ");'"> <br />";
    }
    echo "Max number of Players";
}

我的JavaScript现在是基本的,因为我只是试图确保我得到的id传递正确。我最终将添加jQuery,它将从列表中删除播放器。

这是我的JavaScript:

function removePlayer(test){    
    alert(test);
    };

这是因为你没有把$value用引号括起来试试这个

echo "<input type='"button'" name='"" . $key . " '" id='"" .  $value . "  '" value='"Remove'" onclick='"removePlayer('" . $value . "');'"> <br />";

您正在生成格式错误的Javascript -忘记用引号包围您的onclick函数调用。如果您的代码中出现了严重的"倾斜牙签综合征",请尝试这样输出HTML:

    $safe_value = json_encode($value);
    echo <<<EOL
Player #: $key  Player Name: $value
<input type="button" name="$key" id="$value" value="Remove" onclick="removePlayer($safe_value);"><br />
EOL;

注意使用json-encode来确保$value是实际的正确的JS数据。使用HEREDOCs来处理这个问题,因为它消除了在您输出的文本中转义任何引号的需要,并且允许直接插入变量。