我正在建立一个梦幻足球网站,我在使用引号和javascript时遇到麻烦。
我在足球场图像上有一张球员名单和一组18 <div>
(11名首发球员和7名替补球员)。我希望用户能够单击表格上的名称,并且该名称同时出现在该字段上并从表格中消失。玩家姓名必须出现在第一个“空”位置(开始或替补)。另一方面,如果用户点击<div>
,该名称必须从字段/工作台中消失,并显示在原始位置的表格中。
这比看起来更容易解释! :)
我能够做到这一点,但是一旦我发现有名字中有'
的玩家,我就会生气...
我有以下代码片段,用于处理18位(var团队)和两个函数
<script>
team = new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0);
function insertPlayer(name)
{
var j = 0;
for (j=0; j<18; j++) {
if(team[j] == 0){
break;
}
};
if(j<18){
team[j] = 1;
var num = j.toString();
var id_string = 'player_'.concat(num);
document.getElementById(j).textContent = name;
document.getElementById(id_string).value = name;
document.getElementById(name).style.display = 'none';
}
}
function removePlayer(id)
{
team[id] = 0;
var num = id.toString();
var id_string = 'player_'.concat(num);
document.getElementById(document.getElementById(id).textContent).style.display = "";
document.getElementById(id).textContent = "";
document.getElementById(id_string).value = "";
}
</script>
<div>
就像这个
<?php
for ($i=0; $i < 18; $i++) {
echo '<div onclick="removePlayer(\''.$i.'\')" id="'.$i.'">';
if(isset($array[$i])){echo $array[$i];}
echo '<input type="hidden" id="player_'.$i.'" name="player_'.$i.'" value=';
if(isset($array[$i])){echo '"'.$array[$i].'"';}
echo '></div>';
}
?>
当然,$array[$i]
是已保存的阵容,如果用户已经完成并希望修改他的第一选择。
表格就像这样:
<tr id="'.mysqli_real_escape_string($link,$name).'">
...
<td>...</td>
<td onclick=\"insertPlayer('".mysqli_real_escape_string($link,$name)."')\">".$name."</td>
<td>...</td>
...
正如我所说,这对普通名字很有用。它给我带来了像“奥尼尔”这样的名字的麻烦......
感谢您的帮助!