Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi for PHP > Удаление данных |
Автор: TYMON 27.02.15, 16:20 |
Здравствуйте всем. Подскажите как удалить данные правильно. Есть у меня сетка ДБГрид, и кнопка Удалить (Button). Делаю как по аналогии в билдере <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> function Button2Click($sender, $params) //вот эта строчка как мне вытянуть текущую запись? на которой стоит курсор (она выделена) $del = $this->DBGrid1->DataSource->DataSet->Fields; mysql_query("DELETE FROM {specialist} WHERE (FIO_specialist='{$del}')"); } Вопрос в коде |
Автор: Eremeev 27.02.15, 20:01 |
зайдите в раздел FAQ, тема уже была |
Автор: TYMON 28.02.15, 09:11 |
Извините конечно, искал в поиске не нашел как-то как удалить запись поле которой выделено в RADPhp |
Автор: TYMON 28.02.15, 10:42 |
Нашёл наконец-то на форуме строчку Переделал в свою <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> $del = $this->DBGrid1.getTableModel().getValue(0, $this->DBGrid1.getFocusedRow()); Пишет Fatal error: Call to undefined function getTableModel() in Z:\home\acz.net\www\index.php on line 54 Вообщем пишу код в событие <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> function DBGrid1JSClick($sender, $params) { ?> //begin js document.getElementById('Edit5').value = DBGrid1.getTableModel().getValue(1, DBGrid1.getFocusedRow()); //end <?php } Но почему то сетка не подгружается. Из-за чего это может быть? Тот же код писал и для ButtonJSClick он не срабатывает, в поле ничего не отображается |
Автор: Eremeev 28.02.15, 11:43 |
del = DBGrid.getTableModel().getValue(1, DBGrid.getFocusedRow()) ; del - это ты получаешь через жс. теперь надо его передать в пхп код для параметра удаления ; в примерах смотри на MasterDetail как дальше можно действовать |
Автор: TYMON 28.02.15, 13:43 |
function Button3JSClick($sender, $params) { ?> //begin js //end <?php $this->Edit5->Text = "fdgdfgdfgdfgd"; } Объясните пожалуйста почему я запустив страницу сразу вижу текст в Эдит5? На кнопку не нажимал Добавлено Вот нашел попробовал, не работает <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> function Button3JSClick($sender, $params) { ?> //begin js del = DBGrid1.getTableModel().getValue(1, DBGrid1.getFocusedRow()); window.location.href = "http://acz.net/index.php?del=" + del; //end <?php $this->Edit5->Text = $_GET['del']; } |
Автор: Eremeev 28.02.15, 14:35 |
а сам вызов del = 1: "http://acz.net/index.php?del=" + del работает ? чисто без среды разработки |
Автор: TYMON 28.02.15, 16:04 |
Немного не понял без среды разработки в смысле в браузере запустить и попробовать нажать на кнопку? при этом заменив значение del на 1 просто? Попробовал так, не работает |
Автор: Eremeev 28.02.15, 16:17 |
запусти в браузере в командной строке "http://acz.net/index.php?del=1" без всяких кнопок и т.д. и если ничего не работает, то Delphi for PHP вообще не причем. не работает сам код пхп. изучать сам пхп нужно ну никак не с Delphi for PHP |
Автор: TYMON 28.02.15, 16:27 |
Знаю что надо учить PHP, мне просто срочно надо сделать, а спешка в программировании вообще не вариант, сам-то привык с десктопом и базами работать, поэтому извиняюсь за беспокойство. Выполнил строчку в браузере записало в Edit единицу. |
Автор: Eremeev 28.02.15, 16:40 |
отлично - работает. теперь создай еще 1 файл с именем например t1.php помести туда код где Цитата Выполнил строчку в браузере записало в Edit единицу. т.е. тот код где сработало и в Delphi for PHP выполни вместо твоего кода <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> del = DBGrid1.getTableModel().getValue(1, DBGrid1.getFocusedRow()); window.location.href = "http://acz.net/[B]t1.php[/B]?del=" + del; т.е у тебя должно файл index.php вызвать t1.php и в t1.php записать в Edit единицу |
Автор: TYMON 28.02.15, 17:16 |
Не знаю правильно Вас понял или нет. Но когда нажимаю на кнопку index.php то на форму t1.php не переходит |
Автор: Eremeev 28.02.15, 17:25 |
window.location.href = "http://acz.net/t1.php?del=" + del; да, не обратил внимание что выделение не сработало и неправильная ссылка получилась вот так location.href='ws_http://acz.net/t1.php?del=1' ; и тип кнопки выставь btnormal |
Автор: TYMON 28.02.15, 17:32 |
В адресную строку выдало такую строчку http://acz.net/ws_http://acz.net/t1.php?del=1 Forbidden получилось. Убрал ws_. Перешло на страницу t1, адрессная строка http://acz.net/t1.php?del=1 Так всё нормально записывает, не там строчку $Page1->Edit1->Text = $_GET['del']; прописал Далее сделал на кнопке <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> del = DBGrid1.getTableModel().getValue(1, DBGrid1.getFocusedRow()); window.location.href = 'http://acz.net/t1.php?del='+del; Передалось значение текущее, то что выбрал в DBGrid |
Автор: Eremeev 28.02.15, 17:39 |
добавь в т1 function Page21Create($sender, $params) { $this->Edit1->Text = $_GET['del']; } и все сработает |
Автор: TYMON 28.02.15, 17:45 |
Короче у меня такое впечатление что просто надо было выставить кнопке тип Normal. Потому что щас прописал такой же код как в начале на кнопку: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> function Button3JSClick($sender, $params) { ?> //begin js del = DBGrid1.getTableModel().getValue(0, DBGrid1.getFocusedRow()); window.location.href = 'http://acz.net/index.php?del='+del; //end <?php $this->Edit5->Text = $_GET['del']; } И заработало Добавлено Фууух, работает может кому понадобится удаление текущей записи: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> function Button3JSClick($sender, $params) { ?> //begin js del = DBGrid1.getTableModel().getValue(0, DBGrid1.getFocusedRow()); // del=1; //window. window.location.href = 'http://acz.net/index.php?del='+del; //end <?php $udalit = $_GET['del']; mysql_query("DELETE FROM specialist WHERE (FIO_specialist='{$udalit}')"); } Спасибо большое Eremeev |