У меня есть базовая статическая функция PHP, которая возвращает значение, хранящееся в $ _SESSION.
static function getOption()
{
//return correct value for title radio selection
if ($_SESSION['foo']=='one')
return 1;
else if ($_SESSION['foo']=='two')
return 2;
else
return 0;
}
Я использую возвращенное значение, чтобы установить правильное значение для радиовхода.
<script>
(function()
{
var opt = <?php echo Chart::getOption(); ?>;
document.getElementsByName('foo')[opt].checked = true;
})();
</script>
Он работает отлично, пока я не вызываю свою функцию сброса, которая разрушает сеанс и запускает новый. Когда я вызываю свою функцию сброса, она по-прежнему отображает правильное значение в статической функции. Однако по какой-то причине он возвращает "<br />"
в части скрипта.
Любая помощь будет принята с благодарностью.
что внутри вашего reset function
? Я думаю, <br/> это происходит из-за ошибки php, поэтому вместо того, чтобы указывать значение, он помещает начало строки ошибки
@ g33k Я уничтожаю сессию в функции сброса. Это все, что он делает. Но затем страница обновляется, что запускает функцию запуска сеанса вверху страницы, поэтому я не понимаю, почему может возникнуть ошибка.
Проверьте свой HTML-код и удалите тег <br/>
.
Нет ни одного. Вот почему я запутался.
Я решил проблему. Я по глупости использовал статическую функцию для отправки значения $ _SESSION на другую страницу, когда я мог легко получить доступ к значению непосредственно из $ _SESSION.
<script>
(function()
{
var opt = <?php echo $_SESSION['option']; ?>;
document.getElementsByName('foo')[opt].checked = true;
})();
</script>
Этот сценарий устанавливается прямо перед концом тега body, поэтому модель DOM уже загружена и работает правильно.
Я был бы удивлен, если бы это вообще сработало, это точно не сработало бы, если бы вы вызывали эту функцию javascript несколько раз без перезагрузки страницы.