|
|
|
| Всем привет, нужна помощь.
Есть код:
function edit_name (id)
// редактирование наименования товара в строке с номером id
{
// получаем текущее наименование товара
var text = document.getElementById ("name"+id).firstChild.data;
// запрашиваем у пользователя новое наименование
text = prompt ('Введите новое наименование товара:', text);
// если нажата кнопка отмена - выход из функции
if(text == undefined)
return;
// создаем асинхронный запрос
var request = createRequest ();
// в запросе указываем, какое поле в какой строке редактируем и новое значение поля
var URL = "handler.php?edit=name&id="+id+"&text="+encodeURIComponent(text);
request.open ("GET", URL);
// устанавливаем обработчик события - ответа на запрос
request.onreadystatechange = function ()
{
if (request.readyState == 4)
if ( request.status == 200)
// записываем в ячейку новое наименование товара
document.getElementById ("name"+id).firstChild.data = request.responseText;
else
request_error ("Ошибка запроса: " + request.statusText);
};
// посылаем асинхронный запрос
request.send (null);
}
|
Весь смысл в этой строчке, в которую передаётся нужный параметр и его можно поменять:
text = prompt ('Введите новое наименование товара:', text);
Окошко появляется, когда жмешь на текст на странице, обрамленный онкликом и id.
Пример здесь: http://tigra60.kiev.ua/client/example.php
Но вся проблема в том, что это всплывающее окошко, а как сделать, чтобы появлялось поле формы (как инпут, так и текстареа) и если нажмешь мимо или энтер, то запрос бы отправлялся.
Заранее спасибо! | |
|
|
|
|
|
|
|
для: grafen
(18.12.2010 в 21:01)
| | >"как сделать, чтобы появлялось поле формы (как инпут, так и текстареа) и если нажмешь мимо или энтер, то запрос бы отправлялся."
Вас prompt чем не устраивает?
Просто хочется "покрасивше"? И чтобы не на кнопку ОК давить?
Если - "да, очень хочется красоты" - то посоветую Вам изучить HTML+JS+CSS и самому по окончании изучения сделать.
Я не со злости и не от вредности здесь это написал.
Просто - писать много надо... просто так тратить своё время для ублажения Ваших дизайнерских предпочтений - думаю, большинству будет просто лень. Как и мне.
Рецепт прост:
1. Форма не нужна.
2. Нужен обычный скрытый DIV с элементом формы.
3. По клику на ячейку DIV показывается и на тело документа навешивается функция, обрабатывающая клик вне этого DIVa, который его снова скроет (и функция с тела документа снимется).
4. Данные из элемента формы DIVa точно также, как и сейчас, отсылаются на сервер и заменяются в ячейке.
Успехов! | |
|
|
|
|
|
|
|
для: АЯ
(19.12.2010 в 04:52)
| | Мне не для красоты, а для функциональности. Не очень удобно, когда всплывает окошко, удобнее когда появляется формочка.
Смысл действий я понял, но 3ий пункт не так уж и легко сделать... поэтому и хотел как-то подправить код, который уже начал использовать... | |
|
|
|