[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: переменная input hidden
Страницы: 1, 2
zhenia3003
проблема, после отправки вместо текста который я набирал с клавиатуры приходит этот текст "Текст вашего объявления". Как исправить?????

<input type="hidden" name="p_text" id="p_text">
<
div class="ptext" id="ptext" contenteditable="true" onFocus="if(this.innerHTML=='Текст вашего объявления'){this.innerHTML=''; this.style.color='#000';}" onBlur="if(this.innerHTML==''){ this.innerHTML='Текст вашего объявления'; this.style.color='#ccc';}">Текст вашего объявления</div>
<
script>document.getElementById('p_text').value=document.getElementById('ptext').innerHTML; //input hidden post</script>
zhenia3003
Итак, у меня получилось следующее.
Почему я начинаю передавать такой текст, а приходит другой с тегами?


передаю такой
ф ывф ывфы вф ыв ф ывфы вфы вфы вфы в2 23423 уыва


получаю такой
ф ывф ывфы<div>&nbsp;вф</div><div>ыв&nbsp;</div><div>ф&nbsp;</ div><div>ывфы вфы вфы вфы&nbsp;</div><div>в2 23423 уыва</div>



<input type="hidden" name="p_text" id="p_text">
<
div class="ptext" id="ptext" contenteditable="true" onFocus="if(this.innerHTML=='Текст вашего объявления'){this.innerHTML=''; this.style.color='#000';}" onBlur="if(this.innerHTML==''){ this.innerHTML='Текст вашего объявления'; this.style.color='#ccc';}">Текст вашего объявления</div>
<
script>document.getElementById('p_text').value=document.getElementById('ptext').innerHTML;</script>

<
input type="submit" class="btn1" name="add" id="go_btn" value="Отправить" onclick="document.getElementById('p_text').value=document.getElementById('ptext').innerHTML;">
sergeiss
Текст как формируется - каким-нибудь визуальным редактором или только вручную? Вот тот, который внутри ДИВа "ptext", который "Текст вашего объявления".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zhenia3003
Никаким редактором . Сам div изменяемый. Texrarea нет. Использую див потому-что можно добавлять картинки. Передаю переменную. В файл уже записываются эти краказябры-теги
sergeiss
Я понял, что у тебя происходит smile.gif И ты сам можешь это увидеть, своими собственными глазами. Тебе надо только войти в "Режим разработчика" в браузере. В Опере это называется "Проинспектировать элемент", в Хроме - "Просмотр кода элемента".

И ты увидишь, что когда ты при вводе данных нажимаешь Энтер, то у тебя в поле ввода формируется новый ДИВ, который содержит одну (текущую) строку. В итоге ты и получаешь то, что описал.

Или, иными словами, это нормальное явление для данной ситуации.

Если хочешь избавиться, то удаляй все тэги ДИВ из текста, перед его отправкой. А вместо ДИВов ставь перевод строки. И - будет тебе счастье.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zhenia3003
я тоже понял что, при переносе строки формируется <div></div> , как это убрать? replace - этим? есть примерный код?
sergeiss
Цитата (zhenia3003 @ 5.08.2014 - 07:25)
как это убрать? replace - этим?

Да, его надо. Тебе надо регуляркой выбирать текст, находящийся либо вне тэгов ДИВ (это первая строка), либо находящийся внутри ДИВов (это все последующие строки); выбирать этот текст, удаляя ДИВЫ и добавлять к каждой строке знак "новая строка".

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
kaww
zhenia3003, все еще осталось загадкой кто добавляет html-разметку. приведенный вами код этого не делает. Зачем сначала добавлять div'ы а затем их удалять регуляркой? может имеет смысл не делать этих лишних действий
zhenia3003
Цитата (kaww @ 5.08.2014 - 03:52)
zhenia3003, все еще осталось загадкой кто добавляет html-разметку. приведенный вами код этого не делает. Зачем сначала добавлять div'ы а затем их удалять регуляркой? может имеет смысл не делать этих лишних действий

никто не добавляет. div с атрибутом contenteditable="true" заменяет textarea. Почему div, а не textarea - из-за невозможности во второе вставить картинки.

Единственный пока что недостаток это вывод тегов <div>
sergeiss
Цитата (zhenia3003 @ 5.08.2014 - 07:57)
никто не добавляет

Понятно, что ты имел ввиду этими словами - что твой код не добавляет smile.gif Но лучше сказать, мне кажется, "браузер добавляет".


zhenia3003, а кстати. Чем тебе мешают эти внутренние ДИВы?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zhenia3003
Цитата (sergeiss @ 5.08.2014 - 04:06)
Цитата (zhenia3003 @ 5.08.2014 - 07:57)
никто не добавляет

Понятно, что ты имел ввиду этими словами - что твой код не добавляет smile.gif Но лучше сказать, мне кажется, "браузер добавляет".


zhenia3003, а кстати. Чем тебе мешают эти внутренние ДИВы?

после отправки формы, все записывается в txt файл, вместе с div'ами, не удобно, там кстати не только дивы создаются, а еще пробелы символом, тег <br> итд
kaww
zhenia3003, действительно, не въехал сразу.
Вот, например http://stackoverflow.com/questions/1855233...on-enter-chrome

или
el.innerHTML.replace(/\<div\>/, "\n").replace(/\<\/div\>/, "")
,но это выглядит костыльно
zhenia3003
Кому интересно, проблему решил, удалил теги в обработчике php тегом strip_tags().
killer8080
Цитата (zhenia3003 @ 5.08.2014 - 08:57)
Кому интересно, проблему решил, удалил теги в обработчике php тегом strip_tags().

а как же картинки? biggrin.gif
zhenia3003
Цитата (killer8080 @ 5.08.2014 - 11:49)
Цитата (zhenia3003 @ 5.08.2014 - 08:57)
Кому интересно, проблему решил, удалил теги в обработчике php тегом strip_tags().

а как же картинки? :D

javascript'ом вставляю код картинки, обрабатываю php скриптом

короче говоря
 
$smail = array(":1:");
$grafic = array("<img src='main/smile/1.gif'>");
$p_msg = str_replace($smail,$grafic,$p_msg_file);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.