Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.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

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)