Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сменить всплывающее окно на ячейку формы
 
 автор: grafen   (18.12.2010 в 21:01)   письмо автору
 
 

Всем привет, нужна помощь.

Есть код:
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

Но вся проблема в том, что это всплывающее окошко, а как сделать, чтобы появлялось поле формы (как инпут, так и текстареа) и если нажмешь мимо или энтер, то запрос бы отправлялся.

Заранее спасибо!

  Ответить  
 
 автор: АЯ   (19.12.2010 в 04:52)   письмо автору
 
   для: grafen   (18.12.2010 в 21:01)
 

>"как сделать, чтобы появлялось поле формы (как инпут, так и текстареа) и если нажмешь мимо или энтер, то запрос бы отправлялся."

Вас prompt чем не устраивает?
Просто хочется "покрасивше"? И чтобы не на кнопку ОК давить?

Если - "да, очень хочется красоты" - то посоветую Вам изучить HTML+JS+CSS и самому по окончании изучения сделать.

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

Рецепт прост:
1. Форма не нужна.
2. Нужен обычный скрытый DIV с элементом формы.
3. По клику на ячейку DIV показывается и на тело документа навешивается функция, обрабатывающая клик вне этого DIVa, который его снова скроет (и функция с тела документа снимется).
4. Данные из элемента формы DIVa точно также, как и сейчас, отсылаются на сервер и заменяются в ячейке.

Успехов!

  Ответить  
 
 автор: grafen   (19.12.2010 в 20:43)   письмо автору
 
   для: АЯ   (19.12.2010 в 04:52)
 

Мне не для красоты, а для функциональности. Не очень удобно, когда всплывает окошко, удобнее когда появляется формочка.

Смысл действий я понял, но 3ий пункт не так уж и легко сделать... поэтому и хотел как-то подправить код, который уже начал использовать...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования