У меня есть эта многострочная строка, состоящая в основном из HTML, поэтому я решил использовать одиночные кавычки в качестве разделителей.
Для краткости я удалил большую часть HTML из строки, чтобы просто сфокусироватьсяна части ошибки.
jQuery("#myModal .modal-content").html('<div class="modal-header">' +
'<h4 class="modal-title" id="myModalLabel">Duplicate Entry Found!</h4></div>' +
'<a type="button" href="index.php?layout=studentprofile&id=' + studentid +'" target="_blank">View Student Profile</a>' );
Происходит следующее: сервер кодирует код и удаляет знаки плюс +
и добавляет %20
вместо него .
ЕслиЯ пишу конкатенацию как ...studentprofile&id=' + studentid +"
(т.е. с пробелами), вывод будет ...id='%20%20%20studentid%20%20%20'"
И если I удалить все пробелы между строками и знаком плюс, как ...studentprofile&id='+studentid+"
затем вывод становится ...id='%20studentid%20'"
Одним интересным наблюдением является то, что это происходит только для одиночных кавычек, и если я просто переключу запятые, он вернется к правильной работе.
Другие вещиЯ хотел бы добавить, что этот код используется для безупречной работы на предыдущих установках LAMP, но я недавно обновил весь стек, поэтому не знаю, язык webserver
или php
, или даже мой фреймворк, которыйКстати, Joomla!
вводит это поведение.
Еще одно открытие: Это происходит только для плюсов вокруг переменной studentid
, остальная часть строки с их плюсамиработает отлично.
ОК, мне кажется, что-то здесь есть, очевидно, это вина Joomla! Сейчас найден другой аналогичный вопрос .