Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   помогите исправить баг (редактируемая таблица) (https://javascript.ru/forum/dom-window/39561-pomogite-ispravit-bag-redaktiruemaya-tablica.html)

MBmusic 04.07.2013 10:53

помогите исправить баг (редактируемая таблица)
 
в общем вот весь код http://codepaste.ru/14802/ , есть маленький баг, при нажатии на ячейку таблицы появляеться <input="/>"/> вместо содержимого ячейки......в чем проблема?

danik.js 04.07.2013 10:59

А че за ресурс такой? Я не вижу там кнопки Запустить. Как лицезреть проблему то, а?. Зато в коде увидел настоящую муйню - зачем трижды навешивать обработчик события click? Дальше даже не смотрел..

MBmusic 04.07.2013 11:03

ну это не совсем мой код) там же при клике мы подставляем поле в ячейку, потом подставляем значение ячейки в поле......как то так)

MBmusic 04.07.2013 11:05

создайте файл и закиньте туда код, и посмотрите

рони 04.07.2013 11:39

Цитата:

Сообщение от MBmusic
при нажатии на ячейку таблицы появляеться <input="/>"/> вместо содержимого ячейки......в чем проблема?

зачем плодить темы -- вам же указали причину -
Цитата:

Сообщение от рони
всё работает за исключением непродуманности 500 кликов по 1 ячейке.

и даже bes, нашёл решение вашей проблемы
http://javascript.ru/forum/dom-windo...a-tablica.html

MBmusic 04.07.2013 11:47

я там переделал чуток, хотелось бы что бы вы указали здесь на проблему......создайте файл и скиньте туда этот код http://codepaste.ru/14802/ и посмотрите че за баг

danik.js 04.07.2013 12:04

Цитата:

Сообщение от MBmusic
создайте файл и скиньте туда этот код http://codepaste.ru/14802/ и посмотрите че за баг

Ты правда думаешь что это не твоя обязанность? Закинь хотя бы сюда: http://learn.javascript.ru/play

MBmusic 04.07.2013 12:33

danik.js, вот смотри http://learn.javascript.ru/play/syvXpb ......жми на ячейку, баг странный

danik.js 04.07.2013 12:46

Ну все правильно. Выполняется три обработчика подряд. Второй и третий берут текущий html и вставляют его вновь и вновь, делая матрешку. Че с тобой говорить если ты игноришь советы.

MBmusic 04.07.2013 12:53

так а если вторую и третью функцию убрать то поле перестанет пропадать когда мы нажимаем вне ячейки......там видимо глюк во второй функции

MBmusic 04.07.2013 12:56

вообще я брал этот пример я брал от сюда http://dayte2.com/editable-table делал строго по статье......

danik.js 04.07.2013 13:04

Ну ты лапух. И где там сказано что нужно совмещать все три куска кода? Там просто показано развитие мысли)

MBmusic 04.07.2013 13:16

danik.js, всё, уже исправил баг......теперь единственный и последний вопрос)) как это дело связать с бд......то есть в таблицу выводятся записи......мы чтото меняем, и через аякс оно записывает в бд и сразу выводит...

mta88 04.07.2013 13:45

Цитата:

как это дело связать с бд
а вы хотя бы один ajax-запрос в жизни сделали?:)
если да, то что тут сложного?
* отправляйте не сервер запрос, говорящий, какую строчку и столбец хотите изменить и на какое значение
* код на сервере генерирует sql-запрос, выполняет его и отправляет в браузер какой-нибудь результат, скажем "успех" или "ошибка"
* если "успех", изменяем html-таблицу, если "ошибка", показываем ошибку

конечно, надо будет заранее связать столбцы и строки html-таблицы и таблицы базы данных

MBmusic 04.07.2013 14:29

mta88, помогите сформировать ajax-запрос......мне нужно на сервер отослать данные из ячейки после того как мы убрали фокус от ячейки......мб как то так:

var data = val;
				$.ajax({
                data: data,
                success: function(html) {
                        $("#result").append(data);					
                }
				});


val это то что у нас в ячейке находится, в смысле сами данные......мне походу нужно еще айдишник передать, а потом уже сделать запрос на апдейт......только как это всё организовать?

danik.js 04.07.2013 15:41

Так и огранизовывай. Передавай еще и айдишник конечно:
..
data: {value: val, id: id},
...

MBmusic 04.07.2013 16:02

скрипт перестал работать когда вставил этот код:

var data = val;
				$.ajax({
                type: "POST",
                data: {value: val, id: id}
                success: function(html) {
                        alert("d");					
                }
				});


хочу проверить отправляються ли данные, но теперь весь скрипт не работает

danik.js 04.07.2013 16:31

Ты и вправду лапух. Запятую забыл. Значение в переменную id хоть записал?

MBmusic 04.07.2013 17:10

danik.js, я уже тут сделал много чего, данные уже отправляються......

$.ajax({
                type: "POST",
                url: "SendData.php",
                data: {val: val, idtd: idtd},
                success: function(html) {
                        alert(idtd+val);					
                }
				});


в алерт выводит то что нужно отправить......остается последний вопрос как теперь сделать апдейт......пишу следующее:

$idtd = $_POST['idtd'];
$val = $_POST['val'];
if($idtd && $val){
$this->database->query("UPDATE mygrid SET '{$idtd}' = '{$val}'") or die (mysql_error());
}

MBmusic 04.07.2013 17:10

но выдает ошибку Notice: Undefined index: idtd in D:\sites\myblog\www\site\www\index.php on line 58 Notice: Undefined index: val in D:\sites\myblog\www\site\www\index.php on line 59

и апдейт в базу не делает...

danik.js 04.07.2013 17:13

Даш потом ссылку на сайт когда выложишь. Местные школьники тебе "проапдейтят" базу очень хорошо )))

MBmusic 04.07.2013 17:31

danik.js, та я никуда выкладывать ничего не буду......это для других целей делаю......так помоги плз последний штрих замутить)) именно запрос......данные из аякса на сервак передаються, почему пхп запрос не выполняется??


Часовой пояс GMT +3, время: 15:26.