|
Языки программирования Изучаем С++, Sql, php, Lua, Python |
|
Опции темы | Поиск в этой теме | Опции просмотра |
15.05.2011, 15:44 | #1 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
|
[JQuery] append или html вывод данных в <input>
Может быть тут есть знатоки JQuery\Ajax кто сможет помочь.
Делаю не сложную задачу по подгрузке данных из БД (например, пользователь вводит email и получает имя пользователя) Формирую скрипт для отправки пользователю вот таким способом: Код:
$js = 'var db = $("#name");'; $js .= 'db.html("'.$query['text'].'");'; Код:
function Send() { $.post("ajax.php", { act: "send", email: $("#email").val() }, function (result) { eval(result); }); $("#name").focus(); return false; } Код HTML:
<div id='name'></div> Код HTML:
<input type='text' id='name' value=''>
Подскажите в чём косяк =\ |
15.05.2011, 15:52 | #2 |
Администратор
|
Как я понимаю, приходит result, который содержит код JS.
В нем может быть прописано проставление значения в innerHTML, а у INPUT должно быть value. |
15.05.2011, 16:25 | #3 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
|
Вот как раз дело в том что, не всегда почему то отсылает данные. Сейчас вот ещё покапался и пришёл к таким результатам:
Использование append(); - работает только с <DIV>, причём не делает очистку при повторном выполнении. Код:
$js .= 'db.append("'.$query['text'].'");'; Использование html(); - работает только с <DIV> Код:
$js .= 'db.html("'.$query['text'].'");'; Код:
$js .= 'db.val("'.$query['text'].'");'; Код:
$js .= 'db.attr("value", "'.$query['text'].'");'; |
15.05.2011, 16:57 | #4 |
Администратор
|
DIV - блочный элемент, может содержать вложенные элементы.
INPUT - неблочный элемент, не может содержать внутри другие элементы. append() - работает с блочными элементами. html() - для элементов, у которых есть атрибут innerHTML. val() - для элементов, у которых есть атрибут value. attr() - должен работать со всеми элементами, у которых есть атрибуты. |
Пользователь сказал cпасибо: | Nordway (15.05.2011) |
15.05.2011, 18:11 | #5 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
А если попробовать не input, а textarea (блочный?) сделав его высотой в одну строку, и ограничив по кол-ву символов?
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
15.05.2011, 18:52 | #6 |
Администратор
|
У TEXTAREA тоже только value.
|
16.05.2011, 09:02 | #7 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Между тегами <textarea> и </textarea> можно поместить любой текст, который будет отображаться внутри поля, а value там как раз нет.
Цитата:
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
16.05.2011, 09:40 | #8 | |
Гость
Сообщений: n/a
|
Цитата:
не надо голову ломать, выставлять и value и innerHTML значение и забыть |
|
16.05.2011, 11:35 | #9 |
Администратор
|
У TEXTAREA значение пишется в value, хотя можно обратиться и через innerHTML.
Для сравнения: в Сафари 5 value возвращает текст без учета энтеров в начале, а innerHTML возвращает с энтером. |
16.05.2011, 20:10 | #10 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Цитата:
Код:
<TEXTAREA style="WIDTH: 540px; DISPLAY: block; HEIGHT: 250px; oWidth: 540px" dir=ltr id=vB_Editor_001_textarea tabIndex=1 rows=10 cols=60 name=message editorid="vB_Editor_001"> У textarea значение пишется между <textarea> и </textarea>, а никак не в value. </TEXTAREA>
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
16.05.2011, 22:08 | #12 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
|
Как вариант для <textarea> можно использовать .text()
Проверить достовреность информации в данный момнет нет возможности, но где-то об этом слышал |
17.05.2011, 09:18 | #13 | |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
Так нам же, по идее, надо append() загонять внутрь какого-то поля? В смысле - я вообще потерял конечную цель... Что на входе есть, и чего в итоге получить надо?
Судя по первому посту: Цитата:
PHP код:
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
|
Пользователь сказал cпасибо: |
17.05.2011, 10:06 | #14 | |
Гость
Сообщений: n/a
|
Цитата:
input -> Ajax -> input -> submit ( ввод мыла, запрос на поиск пользователя по мылу, вывод данных в форму для отправки на сервер ) input -> Ajax -> input(div) ( ввод мыла, запрос на поиск пользователя по мылу, вывод данных в форму или блок для отображения пользователю) что ожидаем от процесса? |
|
17.05.2011, 11:33 | #15 |
Администратор
|
Не осилил описания.
Скрин формы есть? |
17.05.2011, 21:33 | #16 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
|
Задача была такой: пользователь вводит в поле_1 свой\чей-то email. После нажатия кнопки в поле_2 появляется имя хозяина этого почтового адреса. Если в БД нет такого адреса - выводится соотв. сообщение.
Вид формы в приложении. Сошлись на том, что .append() для вывода информации в поле_2 не пригоден (т.к. тип поля input), и желательно использовать метод .val() или .attr() |
17.05.2011, 22:51 | #17 |
Гость
Сообщений: n/a
|
Nordway, имхо, использовать input - "не красиво"...его и править можно( со стилем disabled уже не то ), и само по себе поле выглядит лишним...а если у человека отключен javascript?
может просто: alert('Имя пользователя: '+name) или переход на страницу с именем( при отключенном js ) ? |
17.05.2011, 23:20 | #18 |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
|
Код:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> </head> <body> <form onSubmit="return Send()"> <input type="text" id="email" > <input type="submit"> <input type="text" readonly="readonly" id="name" > </form> <script> function Send() { $.post("ajax.php", { act: "send", email: $("#email").val() }, function (result) { $("#name").val(result); }); $("#name").focus(); return false; } </script> </body> </html> Код:
<? if($_POST['email']==="test@mail.ru") echo "Good mail"; else echo "Bad mail"; ?> |
18.05.2011, 10:09 | #19 |
Forum bot
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
|
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. |
19.05.2011, 09:17 | #20 |
RMDC Donator
Регистрация: 07.03.2010
Адрес: Россия
Сообщений: 29
Сказал(а) спасибо: 16
Поблагодарили 18 раз(а) в 3 сообщениях
|
Minimajack, согласен. Для случаев когда редактировать ничего не нужно его использовать плохо. Но дело в том, что форму нужно дальше отправлять. И по E-mail из БД вспоминается не только имя пользователя, но и его контактные данные и другая информация, которую пользователь возможно захочет изменить. Поэтому и использую input
|
22.09.2011, 10:29 | #21 |
Пользователь
Регистрация: 07.03.2010
Сообщений: 46
Сказал(а) спасибо: 15
Поблагодарили 53 раз(а) в 14 сообщениях
|
кстати, вспомнилась одна вещь - если надо получить много данных аяксом и заполнить ими форму (для редактирования или отпрвки куда либо). Я использовал JsHttpRequest (http://dklab.ru/lib/JsHttpRequest/) - формируем массив данных на сервере (backend) и обрабатываем результат как массив/хеш уже на стороне клиента (frontend).
Совместимость в jQuery не проверял, а вот с Prototype работает нормально |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
редактируем базы данных - Dbscript | dj--alex | Tools | 14 | 03.04.2017 10:17 |
Ванильные DBC из 3.3.5a в виде html + то, чем было сделано | bogys | Tools | 0 | 20.01.2011 12:59 |
Вывод системного сообщения в игре | Insider42 | Новичкам | 11 | 26.06.2010 13:25 |
[fix 0.12] вывод в таблицу character_stats | Chipleo | Принятые патчи | 1 | 21.04.2010 12:13 |
[9550] Hide unsafe templated ByteBuffer::append function only for internal use. | newsbot | CMaNGOS Commits | 0 | 08.03.2010 18:50 |