| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Строку склеенную в PHP не хочет жевать Javascript |
| Автор: =Женек= 15.10.2007, 15:40 | ||
В PHP есть такой код
Склеивается строка $string, которая потом передается в свойство innerHTML элемента <TD comment_x> Как видите в HTML разметке есть переходы на новую строку. Javascript генерирует ошибку. Если выстроить всю HTML разметку в единую строку все ОК, но неудобно для дальнейшего редактирования. Как орбработать $string, чтобы javascript его скушал? |
| Автор: skyboy 15.10.2007, 15:59 | ||||
удалить переносы строк после формирования.
или при передаче.
|
| Автор: =Женек= 15.10.2007, 16:17 |
| Ну а все же, чтобы готовый код был человеческим с переносами? Неужели innerHTML не может передать символ перевода каретки? Кстати, почему-то $string= str_ireplace("\n","",$string); не убирает перевод каретки... |
| Автор: skyboy 15.10.2007, 17:05 |
| потому, что, видимо, твои Enter'ы редактор сохраняет как "\n\r" или "\r\n". в таком случае сначала надо "обнулить" "\n", а потом дополнительно - "\r". готовый код - с переносами. без переносов только значение стрковой константы в javascript. Или ты хочешь, чтоб после применения javascript измененный HTML-код был с переносами? тогда в РНР меняй "\n" на "'+'\n' + '". Т.е. на код, который превратится в перенос строки уже под JavaScript, а не при формировании. |
| Автор: =Женек= 15.10.2007, 17:25 | ||||
| В принципе первый вариант работает. ОДнако попытался добиться красивого готового HTML кода. Сделал так:
Получилось вот что:
Почему-то \n так и остается в виде символа переноса. Добавлено через 3 минуты и 59 секунд Ладно, конечный результат я так понял должен быть таким : "<td>"+"\n"+"</TD>"; Но ведь, насколько я помню, (у меня был большой перерыв в программировании, стал забывать азы, помня при этом тонкости) - можно интегрровать с помощью апострофов и слешей символ перевода в саму строку типа <TD>/\n</TD> Напомните, пожалуйста и подскажите. |
| Автор: flashaa 15.10.2007, 19:35 | ||||
Эта строка не коректна, в итоге ты заменяешь шило на мыло, т.е. символы переноса на символы переноса. Т.к. внешние кавычки - двойные, символы интерпретируются как переносы. Поменяй на следующее:
|
| Автор: vasac 15.10.2007, 20:40 |
| + пропустить через addSlashes, чтобы в строку не затесалась кавычка. + почитать основы HTML на тему, как в этом самом HTML переносить строки. |