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

HTML+CSS+JavaScript

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

 

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

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

тема: Автоматичесское сохранение в input (в базу Mysql)
 
 автор: tetron   (29.01.2013 в 09:06)   письмо автору
 
 

Отцы!!! Подскажите путь решения данной проблемы.

Пользователь вводит что-то в input и сразу делается запрос в базу с последующим сохранением. Страница при этом не перезагружается.

Знаю как сделать стандартно на php+mysql (с перезагрузкой страницы).

Интересует только подсказка по JavaScript )

  Ответить  
 
 автор: DJ Paltus   (29.01.2013 в 12:35)   письмо автору
 
   для: tetron   (29.01.2013 в 09:06)
 

Для таких вещей существует технология ajax.
1. Маленький php-скрипт, который кладет в базу, сохраните в отдельный файл.
2. подключите к файлу с формой ввода библиотеку jQuery
3. изучите поведение упрощенного метода $.post()
Если не заработает с первого раза, а оно с первого раза не заработает, обращайтесь! )

  Ответить  
 
 автор: tetron   (29.01.2013 в 12:58)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 12:35)
 

напишите пожалуйста пример отправки запроса на файл. допустим данные такие:


<input name="name" type="text" />


файл добавления в базу: "sql/addsql.php" - здесь все понятно.

Пользователь ввел данные, убрал фокус с input - они отправились в обработчик?

  Ответить  
 
 автор: DJ Paltus   (29.01.2013 в 13:20)   письмо автору
 
   для: tetron   (29.01.2013 в 12:58)
 

Ладно. Это код для одного поля:
    <script type=text/javascript>
        //надеюсь, jQuery подключили?
        function sendform(f){
            var t = $(f).children("input").val();
            $.post("addsql.php", {"name":t});
        }
    </script>

Форма:

<form name="" action="#" method="post" onsubmit="sendform(this);return false;">
       <input name="name" type="text" value="">
       <input type="submit" value="Send">
</form>

Соответственно, по попытке сабмита формы страница не обновляется, но в addsql.php летит $_POST['name'] с содержимым поля ввода.

  Ответить  
 
 автор: Deed   (29.01.2013 в 13:41)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 13:20)
 

А зачем onsubmit?
Человеку хочется изящно терзать сервер, по focusout из инпута.

  Ответить  
 
 автор: DJ Paltus   (29.01.2013 в 13:52)   письмо автору
 
   для: Deed   (29.01.2013 в 13:41)
 

А я может в Лиге защиты серверов от терзания онблёрами состою...
Если выполнять любой каприз, мы тут наплодим индусов.

  Ответить  
 
 автор: tetron   (29.01.2013 в 14:07)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 13:52)
 

Спасибо за пример, но возможно сделать без submit? Дело в том в коде сделано несколько input - с добавлением новых пользователем. И каждый раз нажимать кнопку "сохранить" не логично получается.

  Ответить  
 
 автор: DJ Paltus   (29.01.2013 в 14:10)   письмо автору
 
   для: tetron   (29.01.2013 в 14:07)
 

будет не очень удобно - в базу пойдет очень много записей с опечатками.
Может, лучше сделать поле-кнопка, поле-кнопка?

  Ответить  
 
 автор: Deed   (29.01.2013 в 14:24)   письмо автору
 
   для: tetron   (29.01.2013 в 14:07)
 

Несколько инпутов - это нерационально. Если уж на т о пошло, сделайте добавление нескольких пользователей в одном интуте через какой-нибудь разделитель, запятую, например. А в обработчике функцией explode() разбиваете эту строку, trim() и т.д.

  Ответить  
 
 автор: tetron   (29.01.2013 в 19:04)   письмо автору
 
   для: Deed   (29.01.2013 в 14:24)
 

суть в том что данные меняются не постоянно, пользователь настроит свои инпуты и будеть пользоваться сервисом. а каждый раз нажимать на кнопку сохранить муторно (при редактировании допустим 5 инпутов)

  Ответить  
 
 автор: Sfinks   (30.01.2013 в 13:52)   письмо автору
 
   для: tetron   (29.01.2013 в 19:04)
 

А добавить сабмит на нажатие кнопки Enter на клавиатуре? Или нажать Enter тоже муторно?

  Ответить  
 
 автор: Deed   (29.01.2013 в 14:09)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 13:52)
 

И я о том же.
Как представлю себе отправки по onkeyup каждой буквы, так "Ом мани падмэ хум" вспоминается...

  Ответить  
 
 автор: tetron   (29.01.2013 в 14:11)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 13:52)
 

Спасибо за пример!! А так будет "onblur" потеря фокуса с input?

  Ответить  
 
 автор: DJ Paltus   (29.01.2013 в 14:12)   письмо автору
 
   для: tetron   (29.01.2013 в 14:11)
 

Да, но см. выше.

  Ответить  
 
 автор: tetron   (29.01.2013 в 14:15)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 14:12)
 

Да я разобрался в примере. Низкий поклон за пример.

  Ответить  
 
 автор: confirm   (30.01.2013 в 10:48)   письмо автору
 
   для: DJ Paltus   (29.01.2013 в 12:35)
 

Круто конечно ради этого подключать jQuery. )

  Ответить  
 
 автор: DJ Paltus   (30.01.2013 в 14:02)   письмо автору
 
   для: confirm   (30.01.2013 в 10:48)
 

Я его полюбил и теперь никогда не брошу! )
Я настолько плохо владею джаваскриптом, что полбашки перекорёжу, пока соображу, как без жучки обойтись.

  Ответить  
 
 автор: confirm   (30.01.2013 в 14:23)   письмо автору
 
   для: DJ Paltus   (30.01.2013 в 14:02)
 

Ну а что мешает взять готовый скрипт обслуживания асинхронных запросов? Он ведь в сотни раз меньше нежели библиотека. К тому же использование jQuery не освобождает вас от обязанностей знать JS, иначе ее использование будет порождать еще более громоздкий код.

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

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