getElementId возвращает значение null или undefined - PullRequest
1 голос
/ 23 августа 2011

Я использую PHP, AJAX с jQuery, поэтому, когда это произойдет, в процессе оценки будут показаны все выбранные игроки, а также кнопка удаления и 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 теперь прост, потому что я простопытаясь убедиться, что я получаю идентификатор передан правильно.В конце концов я добавлю jQuery, который удалит игрока из списка.

Вот мой JavaScript:

function removePlayer(test){    

    alert(test);
    };

Ответы [ 2 ]

3 голосов
/ 23 августа 2011

Это потому, что вы не заключили значение $ в кавычки, попробуйте это

echo "<input type=\"button\" name=\"" . $key . " \" id=\"" .  $value . "  \" value=\"Remove\" onclick=\"removePlayer('" . $value . "');\"> <br />";
1 голос
/ 23 августа 2011

Вы генерируете искаженный 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, чтобы убедиться, что значение $ действительноправильные данные JS.Использование HEREDOC s для этого является делом, поскольку устраняет необходимость избегать любых кавычек в выводимом вами тексте, плюс позволяет прямую вставку переменных.

...