0 Пользователей и 1 Гость просматривают эту тему.
  • 35 Ответов
  • 2741 Просмотров
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Здавствуйте!
В компоненте конкретная запись из списка записей вызывается для редактирования. При этом print_r, вставленные  в модели в методы getForm и loadFormData показывают правильную информацию, вернее, информация показывает, что всё правильно загружается, а при сохранении изменений в записи print_r не выводит информацию ни в контроллере, ни в функции сохранения save в модели. Почему так происходит?
Форма:
Спойлер
[свернуть]
т.е. должно выполниться задание order.save
контроллер order.php:
Спойлер
[свернуть]
модель order.php
Спойлер
[свернуть]
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
После print_r() надо делать exit(), чтобы прервать работу скрипта, иначе он пойдет дальше, не выводя нужную вам инормацию на экран.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Тренд

  • Захожу иногда
  • 59
  • 6 / 0
Проверьте в контроллере какие параметры он вообще получает на входе.
Как предположение...
Заметил что одновременно при отправке формы уходит
GET: &task=order.save&
И POST: <input type="hidden" name="task" value="order.save"
Возможно, в результате получается массив task[].
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
После print_r() надо делать exit(), чтобы прервать работу скрипта, иначе он пойдет дальше, не выводя нужную вам инормацию на экран.
а в exit надо ту же переменную ставить? print_r($anything); exit($anything);?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
а в exit надо ту же переменную ставить? print_r($anything); exit($anything);?
Не нужно. А почему не пробовали перед тем, как спрашивать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
После print_r() надо делать exit(), чтобы прервать работу скрипта, иначе он пойдет дальше, не выводя нужную вам инормацию на экран.
Спасибо!
Оказалось, что поле типа checkbox, если при редактировании записи убрать галочку, то оно вообще исчезает из набора.
Вот набор до редактирования, где в поле [mcd_a] => 1 стоит галочка
Спойлер
[свернуть]
   [created_by] => 573
    [user_cod] => 12
    [user_lab_cod] => 14
    [head_id] => 0
    [exec_id] => 0
    [exec_cod] => 0
    [exec_lab_cod] => 24
)
requestData
-->
[свернуть]
а вот этот же набор, когда в поле [mcd_a]  галочку убрали
Спойлер
[свернуть]
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Не нужно. А почему не пробовали перед тем, как спрашивать?
((( Не могу объяснить, почему я так сделала. Извините.
Сначала спросила, а потом вспомнила, стала пробовать отладку.
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Оказалось, что поле типа checkbox, если при редактировании записи убрать галочку, то оно вообще исчезает из набора.
решение
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
решение
Угу, нечасто сталкиваюсь с такой проблемой, но использую 2-й вариант в таких случаях.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Так писать куда проще чем по два раза echo
Код: php
echo '<pre>', print_r($data), '</pre>';
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Так писать куда проще чем по два раза echo
true вторым параметром в print_r не хватает
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
true вторым параметром в print_r не хватает
В данном случае не надо в строку. Вот если надо было бы в переменю или в return передать. А чисто для вывода этого достаточтно. хотя в функции лучше exit() добавить чтобы остановить на нужном месте. то бишь
Код: php
echo '<pre>', print_r($data), '</pre>';
exit();
я так обычно делаю когда с save играюсь.  еще var_dump юзаю если нужно
Код: php
echo '<pre>', var_dump($data), '</pre>';
exit();
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
решение
Большое спасибо! Хорошо сказано:This is a common mistake for component developers thinking Joomla takes care of this.
« Последнее редактирование: 16.06.2017, 09:01:00 от GuDeVic »
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
В данном случае не надо в строку. Вот если надо было бы в переменю или в return передать. А чисто для вывода этого достаточтно. хотя в функции лучше exit() добавить чтобы остановить на нужном месте. то бишь
Код: php
echo '<pre>', print_r($data), '</pre>';
exit();
я так обычно делаю когда с save играюсь.  еще var_dump юзаю если нужно
Код: php
echo '<pre>', var_dump($data), '</pre>';
exit();
Спасибо, теперь и я так делаю.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Спасибо всем, кто помог советами.
Не совсем, вернее совсем, не по теме. Вопрос: как вернуться из формы по ссылке, имитирующей кнопку, возврат на последний активный пункт меню?
Имеется в виду, что есть меню (на стороне сайта) для разных групп пользователей. Авторам можно создавать новые записи (предварительно выбрав тип записи), можно редактировать собственную запись, выбрав её из списка или просто просматривать. Завлабы должны утвердить, исполнители взять в работу, потом выполнить и т.д.
Т.е. в некоторые моменты надо после просмотра записи вернуться не на шаг назад, а именно на последний активный пункт меню. И лучше бы в этот момент не было возможности вернуться назад по стрелочке <-  в навигаторе.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Угу, нечасто сталкиваюсь с такой проблемой, но использую 2-й вариант в таких случаях.
Да уж. А я, как оказалось, вчера воспользовалась вариантом 3.  2-й гораздо надёжнее, но вчера я о нём не знала.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
В данном случае не надо в строку.
ну как это не надо, если надо? а потом будете думать, откуда лишняя 1 в выводе.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
ну как это не надо, если надо? а потом будете думать, откуда лишняя 1 в выводе.
Ну есть она не просит, болтается себе ниже объекта или array. А так и писать меньше да и удобнее. Когда на хоткее или макросе или ещё на чем. Ну а не объект и не массив, лучше в var_dump.
Хотя сугубо имхо ибо 1 мне лично не мешает.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
не, ну ты погляди на него :) это ошибка, а не имхо :) так делать нельзя. болтается ниже объекта или массива - это когда объект или массив. а была бы там строка или число
Код
$data = 5432;
echo '<pre>', print_r($data), '</pre>';
и уже было бы немного веселее :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
не, ну ты погляди на него :) это ошибка, а не имхо :) так делать нельзя. болтается ниже объекта или массива - это когда объект или массив. а была бы там строка или число
Код
$data = 5432;
echo '<pre>', print_r($data), '</pre>';
и уже было бы немного веселее :)
А на фига ты в print_r засовываешь строку или число. что же до return парметра он используется чтобы вернуть значение а не выводить его. А здесь чистый вывод.
для строки или чиста можно и так вывести.
Код: php
echo '<pre>'.$data.'</pre>';
А если ты не знаешь что тебе приходит то принт вообще не канет. лучше var_dump
« Последнее редактирование: 16.06.2017, 11:55:28 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
тю :) та какая ж разница что засовывать. отладку надо делать в принципе не через print_r и var_dump, коли о том речь. но мы то о другом :) я о принципе говорю. а принцип как раз и заключается в том, что конструкция
Код
echo '<pre>', print_r($data), '</pre>';
дает неявный результат, и может быть причиной ошибки. ты ж советуешь, как лучше. а может получится наоборот. вот прочтут тему 100500 человек, и некоторые обязательно наткнутся на лишнюю единицу, которая приведет их в ступор :)

в конце концов цикл можно тоже так вывести
Код
$a = +print_r('start');
while ($a<=10) {
echo '<br />', $a++;
}
echo '<br />', 'finish';
но только надо четко понимать, что ты делаешь :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
ты ж советуешь, как лучше.
Я советую как проще. а проще == короче.
Но ладно признаю ты прав. и закончим на этом
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
 *DRINK*
в принципе если разобраться, то мое утверждение что
Цитировать
так делать нельзя
тоже не совсем верно. так делать можно. но просто для копипаста имхо не годится такое :) потому что надо понимать, что делаешь, а копипастят обычно те, кто пока далек от понимания...
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
*DRINK*
в принципе если разобраться, то мое утверждение чтотоже не совсем верно. так делать можно. но просто для копипаста имхо не годится такое :) потому что надо понимать, что делаешь, а копипастят обычно те, кто пока далек от понимания...
Ну даже в копи пасе надо понимать что ты делаешь
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
Очень познавательно.
Ну, а мой вопрос  Ответ #14 : Сегодня в 09:58:17 » можно задать в новой теме? Здесь не подскажете про возможность возврата на последний активный пункт меню?
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
автоматической возможности возврата на последний активный пункт меню нет. сделать то можно, но для этого надо запоминать например URL последнего активного пункта меню в сессии, а в форме выводить кнопку для перехода на запомненный URL. запретить кнопку Back - теоретически тоже можно, но это тогда нужно все переходы делать аяксом, без изменения history браузера, но это очень глобально, переделки очень весомые скорее всего будут.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
автоматической возможности возврата на последний активный пункт меню нет. сделать то можно, но для этого надо запоминать например URL последнего активного пункта меню в сессии, а в форме выводить кнопку для перехода на запомненный URL. запретить кнопку Back - теоретически тоже можно, но это тогда нужно все переходы делать аяксом, без изменения history браузера, но это очень глобально, переделки очень весомые скорее всего будут.
Я понимаю, что в сессии надо записать URL последнего активного пункта меню. А как получить этот URL? Какие команды?
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
На всех страницах формы можно попробовать пушить в хистори предыдущую страницу, чтобы при нажатии "назад", попасть на нее.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
автоматической возможности возврата на последний активный пункт меню нет. сделать то можно, но для этого надо запоминать например URL последнего активного пункта меню в сессии, а в форме выводить кнопку для перехода на запомненный URL. запретить кнопку Back - теоретически тоже можно, но это тогда нужно все переходы делать аяксом, без изменения history браузера, но это очень глобально, переделки очень весомые скорее всего будут.
Если из пункта А направляешься в пункт Б (из меню для создания новой записи или по ссылке из списка записей для редактирования конкретной записи) как в пункте Б сгенерировать URL, по которой там оказался?
*

GuDeVic

  • Захожу иногда
  • 228
  • 0 / 0
На всех страницах формы можно попробовать пушить в хистори предыдущую страницу, чтобы при нажатии "назад", попасть на нее.

Вы имеете в виду javascript:history.back();?  Ну, если запись вызвана из списка на редактирование, после успешного редактирования управление передаётся на просмотр результата редактирования, не смертельно, но можно шагами назад пройти обратный путь. А если при создании новой записи после просмотра созданной записи снова возвращаться в форму для создания новой записи? Это уже чревато, тем более, что создание новой записи связано с типом записи. Поэтому хотелось бы большей определённости при возврате, с вещами на выход.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему Joomla не поддерживает формат webp?

Автор Sensession

Ответов: 74
Просмотров: 10500
Последний ответ 03.10.2023, 19:44:42
от fsv
Почему в админке Joomla в Менеджере категорий не отображаются счетчики материало

Автор mak200

Ответов: 0
Просмотров: 410
Последний ответ 28.07.2022, 16:42:17
от mak200
Не выполняется проверка решений reCAPTCHA

Автор Scaltro

Ответов: 1
Просмотров: 543
Последний ответ 07.07.2022, 22:26:59
от ProtectYourSite
Знакомый почему-то не может войти в учетную запись Joomla со своего компьютера

Автор admi5575

Ответов: 6
Просмотров: 762
Последний ответ 18.12.2021, 20:34:59
от draff
Почему не работает форма поиска type="search"

Автор Hufflepuff

Ответов: 3
Просмотров: 460
Последний ответ 16.12.2021, 12:13:46
от Hufflepuff