Я создаю сайт фэнтезийного футбола, и у меня возникают проблемы с кавычками и javascript.Js, php, функция onclick и котировки
У меня есть одна таблица имен игроков и набор из 18 <div>
(11 стартовых игроков и 7 скамейки) на изображении футбольного поля. Я хочу, чтобы пользователь мог нажимать на имя в таблице, и имя одновременно появляется в поле и исчезает из таблицы. Имя игрока должно появиться в первой «пустой» позиции (либо в начале, либо в скамье). С другой стороны, если пользователь нажмет на <div>
, имя должно исчезнуть из поля/скамьи и появится в таблице в исходной позиции.
Это проще понять, чем объяснить! :)
я был в состоянии сделать это, но я получаю с ума, когда я узнал, были игроки с '
в их именах ...
У меня есть следующий фрагмент кода с массивом для ухода от 18 позиции (вар команды) и две функций
<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>
The <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>
...
Как я уже сказал, это прекрасно работает с нормальными именами. Это дает мне неприятности с именем типа «О'Нил», например ...
Спасибо за помощь!
'mysqli_real_escape_string' следует использовать только при помещении переменной в запрос SQL. – Barmar
Поместите игроков в массив и поместите индекс массива в вызовы функций. – Barmar
Посмотрите на специальные символы HTML-кодирования. – Tro