getElementbyId返回null或undefined

时间:2011-08-23 16:59:42

标签: php javascript ajax getelementbyid

我正在使用PHP,AJAX与jQuery,所以当这个if if statment过程时,它会显示所有选中的玩家,同时放置一个删除按钮和onclick="removeplayer(test);"。但是,当我点击“移除播放器”按钮时,我会获得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);
    };

2 个答案:

答案 0 :(得分:3)

因为你没有将$值括在引号内试试这个

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

答案 1 :(得分:1)

您生成格式错误的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数据。使用HEREDOC就可以了,因为它不需要转义你输出的文本中的任何引号,还允许直接插入变量。