我正在使用PHP,AJAX与jQuery,所以当这个if if statment过程时,它会显示所有选中的玩家,同时放置一个删除按钮和onclick="removeplayer(test);"
。但是,当我点击“移除播放器”按钮时,我会获得null
或undefined
。
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);
};
答案 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就可以了,因为它不需要转义你输出的文本中的任何引号,还允许直接插入变量。