Вывод в переменную

Добавить текст в поле textarea

В поле ставятся некоторые html теги. Можно как то, через JavaScript например добавить кнопку, которая, при нажатии будет добавлять к набранному тексту тег
?

3 ответа 3

document.querySelector('.addBr').onclick = function () < document.querySelector('textarea').value = document.querySelector('textarea').value + '
' >;
  

В свое время тоже была такая задача, сделать простенький редактор

В итоге я решил задачу через добавление простой панельки инструментов

Демо там 404 сейчас, но исходник с примеров в архиве качаются нормально

Опишу суть работы. При создании панелька инструментов привязывается к определенной textarea, а при нажатии кнопок из textarea вынимаются данные — положение курсора, выделение и так далее. После того, как данные удалось вынуть, предпринимаются действия — добавить тег в позицию курсора, обрамить выделение тегами или что-то еще

Вы можете подключить готовый BBEditor, убрать лишние кнопки, добавить свои кнопки для своих тегов, поменять поведение и так далее. Можно стилизовать и поменять тему/кнопки/картинки

А можно просто посмотреть исходник и скопировать только то что вам нужно:

function doAddTags(tag1, tag2, obj) < var postfix = ""; var suffix = ""; if (tag1 == "[blockquote]" || tag1 == "[pre]") < suffix = postfix = "\r\n"; >textarea = document.getElementById(obj); if (document.selection) else > 

Это функция, обрамляющая выделение двумя тегами, например [b]. [/b] . Лаконично и кратко

Читайте также:  Javascript уровень 2 расширенные возможности

В вашем случае добавить
по клику можно примерно вот так:

function brClick(textarea_id) < var tag1 = ''; var tag2 = '
'; var suffix = ''; var postfix = ''; textarea = document.getElementById(textarea_id); if (document.selection) < // Code for IE textarea.focus(); var sel = document.selection.createRange(); sel.text = tag1 + suffix + sel.text + postfix + tag2; >else < var len = textarea.value.length; var start = textarea.selectionStart; var end = textarea.selectionEnd; var scrollTop = textarea.scrollTop; var scrollLeft = textarea.scrollLeft; var sel = textarea.value.substring(start, end); var rep = tag1 + suffix + sel + postfix + tag2; textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len); textarea.scrollTop = scrollTop; textarea.scrollLeft = scrollLeft; >>
  

Источник

Php работа с textarea

Для того, чтобы получить данные из поля textarea с помощью php — нам потребуется:

Нам нужен обязательно метод. лучше чтобы это был метод «post»

Внутрь формы помещаем тег textarea + обязательный атрибут атрибут name

Чтобы наша форма отправки/получения данных из textarea сработала нам нужна кнопка submit

Соберем весь код «Отправить/получить данные из textarea»

После того, как наша форма с textarea — нам нужен скрипт, который обработает отправку данных из «textarea»

Скрипт получения данных из textarea в php if($_POST[‘send’])
if($_POST[‘textarea’])
$send_textarea = strip_tags($_POST[‘textarea’]);
>
else
$send_textarea = ‘отправлено пустое поле. ‘;
>
>
echo $send_textarea ;
?>

Пример получения данных из textarea и вывод на экран

Выше я собрал для вас код отправки/получения данных из textarea в php.

Далее разместим приведенный код прямо здесь:

Протестируем код получения данных из textarea и вывод на экран

Для того, чтобы протестировать работу кода «отправки/получения данных из textarea в php.» вам нужно:

В поле textarea введите какие-то данные.

И после окончания ввода нажмите кнопку

Форма отправки/получения данных из textarea и вывод на экран

Не забываем, что отправляем данные на сервер это массив $_POST.

Чтобы вы могли его увидеть выведем с помощью print_r

Сможете увидеть данный массив после отправки данных из textarea

Получение значения из поля textarea -> javascript

Для того, чтобы получить данные из textarea значения в javascript вам потребуется :

По моему мнению, самый удачный и простой способ обратиться к любому тегу и в том числе и к «textarea» это id

И присвоим ему какое-то значение = «id_textarea»

Иногда может не работать. поэтому добавляем getElementById

Просто так. написав такую конструкцию, вы сможете получить только то, что было внутри тега «textarea» после загрузки страницы! Поэтому нам нужно как-то отлавливать в реальном времени заполнение поля «textarea». Для этого существует огромное количество способов. для примера возьмем keyup

При поднятии клавиши(keyup), будет происходить событие(event).

Нам потребуется. полученный результат куда-то отправить, чтобы вы могли его увидеть. пусть это будет div

Описанное в данном пункте:

Далее надо собрать весь код вместе:

Источник

How to Retrieve Data From a Textarea with PHP

Textareas, also called multi-line text input, are used pretty extensively in forms to extract information from a user. Unlike text boxes, textareas span multiple lines, so that a user can enter into lines of information, rather than just one single line. Therefore, textareas can accomodate more words or sentences.

As an example, below is a textarea in HTML which is very common in forms on the web, such as when a user needs to enter in multiple lines of text:

The comment that you entered is:

PHP allows us to extract the data from this input text area to do whatever we want to accomplish with the data.

Coding

HTML Code

This is the HTML code to create the Additional Comments multi-line text input.

PHP Code

This is the PHP code to retrieve the data entered into the textarea.

The code to then output the line beneath the textarea which a user has entered is:

The reason these 2 pieces of PHP code have to broken up is because PHP retrieval of an HTML form element must be done before the HTML form element. Therefore, the code to retrieve the data from the textarea, which is $comments= $_POST[‘comments’]; must come before the HTML text area. With the retrieval done before, we can now output the retrieved data after the HTML element.

The superglobal aray $_POST retrieves all which is written in the multi-line text input form and stores it in the $comments variable. The echo statement then prints out the comment which is written in this field.

Источник

Как сохранить текст с textarea в переменную $a?

Например, у нас есть

Как мне схоронить весь текст, который я только что вел в textarea, не сохраняя при этом в файл или БД?
После обновления страницы текст удалится, но пока я пишут текст в textarea, переменная $a должна наполняться текстом

И как вывести этот текст через ajax?

Я где то видел код, мне кто-то скидывал, но я его потерял.

Если вы не хотите сохранять текст ни в БД, ни в куки, ни в файлах, тогда никак не сможете получить текст. Вам нужно его где-то хранить.
Что бы не использовать сервер, можно обойтись кукисами или же LocalStorage

@AlexRudkowskij нефига подобного, его можно вывести сразу с переменной, он же у вас веден уже в textarea, значит по сути текст существует и можно его открыть через кнопочку еще раз
этот код из 4 ajax строчок.

Похоже вы всё таки не знаете что такое ajax и зачем его применяют. Вот, почитайте.
Как бы вы не старались, после обновления страницы в не сможете получить текст. Его можно получить до обновления страницы, записать куда-либо и потом при загрузке страницы загружать этот текст. По другому не выйдет

@AlexRudkowskij ну фиг знает может это был $.post или $.get
я помню что там был вот этот код file_get_contents

Если был file_get_contents, то текст сохранялся в файл.
У вас в вопросе: «не сохраняя при этом в файл или БД»

@AlexRudkowskij блин фигня какая та, у меня провалы памяти походу, ну я точно помню что этот код нефига не сохранял отвечаю, после обновление страницы все сбрасывалось.

@AlexRudkowskij там в коде не было указано даже куда этот текст должен был выводится, он выводился сам ниже textarea

Да. Что бы получить текст нужно сделать следующее:
var text = document.getElementsByClassName(‘content’)[0].value;
После этого в переменной text будет текст из textarea

@I_I @AlexRudkowskij дак это ж в твоем вопросе было. Я же тебе там и писал про то, как получить значение из текстареа
Как подключить id или class к оператору php?

jsfiddle.net/iiil/F3ykt
Слушай, может тебе просто вот такое надо? Знаешь, серьезно, где-то проскакивало, что ты занимаешься веб несколько лет. Поверь, ты не создан для этого. Бросай, пока не поздно научиться чему-нибудь еще.

@iiil а тут $(«#result»).html($(‘textarea’).val()); можно вместо textarea поставить переменную если переменная будет тут

@I_I верхняя строчка — js с использованием jq. Нижняя — html с php.
Прекрати травмировать мой мозг.
Ты можешь записывать значение переменной php в текстареа, как показал. Но к твоему вопросу это никакого отношения не имеет.

Прочитайте про POST и GET запросы.
Для начала Вам нужно присвоить текстовому полю имя, например:

И оформить это в HTML-форму:

И вставляйте в нужное место переменную $test.
Теперь после нажатия кнопки на месте, куда вставлена переменная отразится Ваш текст.

 ?>     .content  

Сохраняйте в cookie или локальное хранилище. А вообще у Вас очередной офигенно построенный вопрос. Если в тостер когда-нибудь заглянет иностранец — у него лопнет голова от Ваших текстов.

@I_I а массив куда сохранять? Вы можете по мере печати сохранять с помощью js в переменную и тут же записывать в куки. А потом как угодно использовать. Причем не важно, перезагрузит он страницу или перейдет на другую — Вы везде сможете использовать переменную.
Если Вам надо использовать переменную в другом php скрипте, то Вы можете динамически формировать ссылку и с помощью этой ссылки в другой скрипт передавать значение переменной.
Если я Вас конечно правильно понял.

Источник

Get each line from textarea

How to: 1) Get each line from this textarea ( $text ) and work with them using foreach() ? 2) Add
to the end of each line, except the last one?
3) Throw each line to an array. Important — text inside textarea can be multilanguage. Have tried to use:

8 Answers 8

You will want to look into the nl2br() function along with the trim().

The nl2br() will insert
before the newline character ( \n ) and the trim() will remove any ending \n or whitespace characters.

$text = trim($_POST['textareaname']); // remove the last \n or whitespace character $text = nl2br($text); // insert 
before \n

That should do what you want.

The reason the following code will not work is because in order for \n to be recognized, it needs to be inside double quotes since double quotes parse data inside of them, where as single quotes takes it literally, IE «\n»

But it is still better to use the builtin nl2br() function, PHP provides.

Sorry, I figured the first question was so you could add the linebreaks in, indeed this will change the answer quite a bit, as anytype of explode() will remove the line breaks, but here it is:

$text = trim($_POST['textareaname']); $textAr = explode("\n", $text); $textAr = array_filter($textAr, 'trim'); // remove any extra \r characters left behind foreach ($textAr as $line) < // processing here. >

If you do it this way, you will need to append the
onto the end of the line before the processing is done on your own, as the explode() function will remove the \n characters.

Added the array_filter() to trim() off any extra \r characters that may have been lingering.

Источник

Оцените статью