Форум русской поддержки Joomla!® CMS
17.08.2017, 10:07:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Редактирование таблицы БД в админке

 (Прочитано 369 раз)
0 Пользователей и 1 Гость смотрят эту тему.
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« : 20.12.2016, 12:52:51 »

Есть задача одну из таблиц БД редактировать в админке. Поля на форму вывел, но вот не могу перехватить событие при нажатии на кнопку "Сохранить". Я правильно понимаю, что это процедура save в модели models\[название вида].php? Например, там есть getForm, если я туда ставлю echo, то он отображается, значит в эту часть кода программа заходит. Но метода Save я там не увидел, добавил свою функцию, но программа в неё не заходит. Понимаю, что её нужно пришить к форме - подскажите пожалуйста как.
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

Пол: Мужской
Сообщений: 6921



« Ответ #1 : 20.12.2016, 13:19:16 »

function save($data)
{
    // тут ваши обработки, все, что прилетает с формы, лежит в $data (массив)
    parent::save($data);
}
Записан
Septdir
Практически профи
*******

Репутация: +106/-0
Offline Offline

Пол: Мужской
Сообщений: 2117



« Ответ #2 : 20.12.2016, 13:43:22 »

Смотря что конкретно нужно, может и table подойдет
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #3 : 20.12.2016, 13:55:40 »

Что-то не соображу .....

есть форма, в ней такие строки

Код:

<input type="hidden" name="task" value="Form.save" />
<input type="submit" value="Отправить" />

если я правильно понимаю, то при нажатии кнопки "Отправить" должен сработать метод save из контроллера controllers/form.php

Код:
public function save( $data )
{
   echo metka;
        }

но при нажатии кнопки метку не выводит, значит не попадает в эту процедуру Sad
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

Пол: Мужской
Сообщений: 6921



« Ответ #4 : 20.12.2016, 14:07:26 »

эхо не сработает, т.к. после обработки сохранения контроллер выдаст редирект и эхо тупо не отобразится

сработает только вывод в файл
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9957



« Ответ #5 : 20.12.2016, 14:09:40 »

либо через системные сообщения
Код:
JFactory::getApplication()->enqueueMessage('metka');
Записан
SmokerMan
Профи
********

Репутация: +715/-26
Offline Offline

Пол: Мужской
Сообщений: 5379



« Ответ #6 : 20.12.2016, 14:37:14 »

       echo metka;
metka - это  константа видимо?)
тупо ставить
Код:
die('я тут!');
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #7 : 20.12.2016, 15:00:13 »

либо через системные сообщения
Код:
JFactory::getApplication()->enqueueMessage('metka');

О! Спасибо за ценную фичу, но не разобрался я где системные сообщения смотреть в админке. После установки Joomla выдало несколько сообщений, я их закрыл, теперь не могу найти где их смотреть.
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #8 : 20.12.2016, 15:02:07 »

metka - это  константа видимо?)
тупо ставить
Код:
die('я тут!');

тоже не выводит
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #9 : 20.12.2016, 15:07:28 »

эхо не сработает, т.к. после обработки сохранения контроллер выдаст редирект и эхо тупо не отобразится

сработает только вывод в файл

сделал так

Код:
public function save( $data )
{
die('я тут!');
        $fp = fopen("d:\counter.txt", "a"); // Открываем файл в режиме записи
$mytext = "Это строку необходимо нам записать\r\n"; // Исходная строка
$test = fwrite($fp, $mytext); // Запись в файл
if ($test) echo 'Данные в файл успешно занесены.';
else echo 'Ошибка при записи в файл.';
fclose($fp); //Закрытие файла

тоже не выводит
Записан
dmitry_stas
Профи
********

Репутация: +935/-6
Online Online

Сообщений: 9957



« Ответ #10 : 20.12.2016, 15:07:53 »

значит не попадает в эту процедуру
Записан
AlekVolsk
Профи
********

Репутация: +340/-4
Offline Offline

Пол: Мужской
Сообщений: 6921



« Ответ #11 : 20.12.2016, 15:29:45 »

значит проблема либо с вызовом модели вообще либо с самой моделью, нужно поднобнее всю цепочку mvc видеть
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #12 : 20.12.2016, 15:39:05 »

значит проблема либо с вызовом модели вообще либо с самой моделью, нужно поднобнее всю цепочку mvc видеть

form.php - точка входа

Показать текстовый блок

controller.php

Показать текстовый блок

views\form\view.html.php

Показать текстовый блок

form\tmpl\default.php

Показать текстовый блок

controllers\form.php

Показать текстовый блок
Записан
b2z
Support Team
*****

Репутация: +739/-0
Offline Offline

Пол: Мужской
Сообщений: 7740


Разраблю понемногу


« Ответ #13 : 20.12.2016, 15:53:26 »

Код
<input type="hidden" name="option" value="com_form" />

или в action добавьте option

Код
<?php echo JRoute::_('index.php?option=com_form&view=form); ?>

А почему Form с большой буквы? Проще же form.save и view=form
« Последнее редактирование: 20.12.2016, 15:56:45 от b2z » Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #14 : 20.12.2016, 16:20:24 »

Код
<input type="hidden" name="option" value="com_form" />

или в action добавьте option

Код
<?php echo JRoute::_('index.php?option=com_form&view=form'); ?>

А почему Form с большой буквы? Проще же form.save и view=form

исправил form\tmpl\default.php

Показать текстовый блок

всё равно не попадает в save Sad
« Последнее редактирование: 20.12.2016, 16:24:46 от OnePrg » Записан
SmokerMan
Профи
********

Репутация: +715/-26
Offline Offline

Пол: Мужской
Сообщений: 5379



« Ответ #15 : 20.12.2016, 16:29:39 »

Код:
<form action="<?php echo JRoute::_( 'index.php')?>" method="post" class="form-validate">
...
      <input type="hidden" name="task" value="form.save" />  ТУТ ОСТАВИЛ
      <input type="hidden" name="option" value="com_form" /> ТУТ ДОБАВИЛ
      <input type="submit" value="Отправить" />
      <?php echo JHtml::_( 'form.token' ); ?>
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #16 : 20.12.2016, 16:42:50 »

Код:
<form action="<?php echo JRoute::_( 'index.php')?>" method="post" class="form-validate">
...
      <input type="hidden" name="task" value="form.save" />  ТУТ ОСТАВИЛ
      <input type="hidden" name="option" value="com_form" /> ТУТ ДОБАВИЛ
      <input type="submit" value="Отправить" />
      <?php echo JHtml::_( 'form.token' ); ?>

изменил default.php

Показать текстовый блок

models\forms.php

Показать текстовый блок

не попадает в save Sad
« Последнее редактирование: 20.12.2016, 16:54:55 от OnePrg » Записан
b2z
Support Team
*****

Репутация: +739/-0
Offline Offline

Пол: Мужской
Сообщений: 7740


Разраблю понемногу


« Ответ #17 : 20.12.2016, 16:44:38 »

Ну тогда отладка в помощь. Я уже не знаю, что тут может быть не так.
Записан
robert
Профи
********

Репутация: +385/-15
Offline Offline

Пол: Мужской
Сообщений: 4217


« Ответ #18 : 20.12.2016, 16:50:53 »

controllers\forms.php
? models/form.php, наверное?
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #19 : 20.12.2016, 16:51:48 »

Ну тогда отладка в помощь. Я уже не знаю, что тут может быть не так.


Пару слов или ссылок как отладку лучше делать на PHP можно?
Записан
OnePrg
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 40


« Ответ #20 : 20.12.2016, 16:53:58 »

? models/form.php, наверное?

да, точно ошибся - приложеный файл из models - исправил - спасибо
Записан
b2z
Support Team
*****

Репутация: +739/-0
Offline Offline

Пол: Мужской
Сообщений: 7740


Разраблю понемногу


« Ответ #21 : 20.12.2016, 18:09:08 »

https://www.google.ru/search?q=отладка+с+xdbug
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet