Как хуком Formit обновить таблицу migxbd

Коллеги, подскажите, как обновить хуком таблицу midxdb
Пытаюсь так:
<?php
$conn = mysqli_connect("localhost", "test", "test", "test");
    
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=1";
$result = mysqli_query($conn, $sql);
?>
Работает

Пытался так:
<?php
$nameid = $hook->getValue('nameid');
$allFormFields = $hook->getValues();

$conn = mysqli_connect("localhost", "test", "test", "test");
    
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=('" . $nameid . "')";
$result = mysqli_query($conn, $sql);
Ничего не происходит

Подскажите где туплю
Георгий Графов
09 ноября 2022, 17:17
modx.pro
117
0

Комментарии: 6

Александр
10 ноября 2022, 16:27
0
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=('" . $nameid . "')";
это
$sql = "UPDATE innl2022cld_timebdlots SET active=10 where nameid=('1')";
наверно nameid=('1') нет такого.
Вообще для migxdb api modx использовать лучше:
$modx->addPackage('timebdlot_pack', $modx->getOption('core_path') . 'components/timebdlot_pack/model/');
$nameid = $hook->getValue('nameid');
if($timebdlot = $modx->getObject('timebdlot',(int)$nameid){
$timebdlot->active = 10;
$$timebdlot->save();
}
timebdlot_pack -имя пакета. timebdlot — имя класса таблицы
    Георгий Графов
    10 ноября 2022, 17:08
    0
    да тут проблема в том что похоже не работает
    $nameid = $hook->getValue('nameid');
    Потому что если подставляю сюда
    <?php
    $test = $hook->getValue('nameid');
    $modx->log(xPDO::LOG_LEVEL_ERROR,$test);
    return true;  //<-- if you omit this or return false, your form won't validate
    то получаю array
      Александр
      10 ноября 2022, 17:18
      0
      форму и вызов formit выложи
        Георгий Графов
        10 ноября 2022, 17:23
        0
        {$_modx->runSnippet('!AjaxForm', [
                'snippet' => 'FormIt',
                 'hooks' => 'FormItSaveForm,spam,email,updatetime',
                'frontend_css'=>''
                'emailSubject' => 'Заявка на участие в мероприятии',
                'emailTo' => 'grafov.g@coldy.ru',
                'form' => 'tpl.AjaxForm.Invest'
                'emailTpl' => 'tpl.AjaxForm.Invest.Send',
                'legasy.vTextRequired' => 'Пожалуйста примите условия политики конфиденциальности'
                'successMessage' => 'Сообщение успешно отправлено, наш менеджер свяжется с Вами в ближайшее время!'
                ])}
        Это кусок который nameid

        <div>
                <div class="uk-margin">
            <input class="uk-radio radio_option" type="radio" name="nameid[]" value="1">
            <label>13.00-16.00</label>
              </div><div class="uk-margin">
            <input class="uk-radio radio_option" type="radio" name="nameid[]" value="2">
            <label>10.00-12.00</label>
              </div> 
                <div>
        FormitSaveForm все сохраняет, данные на почту приходят валидные
          Александр
          10 ноября 2022, 18:34
          +1
          nameid[] зачем скобки, если это radio? Из-за них массив приходит
            Георгий Графов
            11 ноября 2022, 11:53
            0
            Спасибо тебе добрый человек! Теперь все заработало как надо, пора завязывать работать 24/7…
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6