Ответы пользователя по тегу PHP
  • Вывод данных из многомерного массива?

    @LikeSD Автор вопроса
    Системный администратор
    Разобрался. Сделал вот так:
    foreach ($res['suggestions'] as $arr) {
            foreach ($arr['data'] as $value => $keys) {
              if(is_array($keys)) {
                foreach ($keys as $k) {
                  $data[]=$k;
                }
              }
            }
          }

    И вывод

    echo $data[9];
    Ответ написан
    Комментировать
  • Как отдать файл на скачивание в Yii2?

    @LikeSD Автор вопроса
    Системный администратор
    Как я и предполагал, никаких проблем с конфигом сервера. Вся соль была в том, что запрос отправляется с помощью Ajax. Что бы решить проблему надо в return метода отдать свформированную ссылку в формате jsone.

    $downloadurl = [
                'url' => '/web/files/' . $file,
            ];
    
            return json_encode($downloadurl);


    А в скрипте, который отправляет данные, добавить строки:

    .then((data) => {
                window.open(data.url);
            })
            error: (function(e) {
                console.log(e);
            })
    Ответ написан
    Комментировать
  • Как в PHPWord заполнить таблицу циклом foreach?

    @LikeSD Автор вопроса
    Системный администратор
    Вопрос решил:

    public function actionPrint($id)
        {
            $model = Order::findOne($id);
            $orders = $model->products;
            $phpWord = new \PhpOffice\PhpWord\PhpWord();
            if(Yii::$app->request->isGet){
                if(Yii::$app->request->get('pdf') == 'bill'){
                    $doc = new \PhpOffice\PhpWord\TemplateProcessor(Yii::getAlias('@webroot').'/files/print_temp/bills_temp.docx');
                    $doc->setValue('d_date', date('d.m.Y'));
                    $doc->setValue('c_inn', $model->client->inn);
                    $doc->setValue('c_name', $model->client->name);
                    $str = 'num';
                    $doc->cloneRow('num', count($orders));
                    $i=0;
                    foreach ($orders as $product){
                        $doc->setValue('num#'.$i, $i+1);
                        $doc->setValue('p_name#'.$i, $product['description']);
                        $doc->setValue('p_count#'.$i, $product['count']);
                        $doc->setValue('p_price#'.$i, $product['price']);
                        $doc->setValue('p_sum#'.$i, ($product['price'] * $product['count']));
                        $i++;
                    }
                    
                    $dir = '/files/';
                    $files_dir = Yii::getAlias('@webroot')."/".$dir;
                    $file = str_replace("/","-", "Счет ".date("d-m-Y")).".docx";
    
                    $doc->saveAs($files_dir.$file);
                }
            }
    
            return true;
        }
    Ответ написан
    Комментировать
  • Не работает UPDATE PDO, не пойму почему?

    @LikeSD Автор вопроса
    Системный администратор
    Переписывал так:

    $sql = "UPDATE lids SET stat_lids=:stat WHERE id_lids=:id";
    			$sth=$db->prepare($sql);
    			$sth->bindParam(':stat', $stat);
    			$sth->bindParam(':id', $id);
    			$sth->execute();


    и вот так:

    $sth=$db->prepare("UPDATE lids SET stat_lids=:stat WHERE id_lids=:id");
    			$sth->bindParam(':stat', $stat);
    			$sth->bindParam(':id', $id);
    			$sth->execute();


    Все-равно не работает. Пробовал уже по всякому....

    ---------------------------------------------------------------

    Победил! Это все из-за не внимательности. Принимал $_POST по name формы. Переписал на name кнопки и все заработало.
    Ответ написан
  • Как получить почту imap_open с авторизацией Kerberos?

    @LikeSD Автор вопроса
    Системный администратор
    Решено!
    $mail_login    = "mymail";
    $mail_password = "mail password";
    $mail_imap     = "{imap.site.ru/imap/novalidate-cert/ssl/norsh/user=name_user}INBOX";
    
    $mbox = imap_open($mail_imap, $mail_login, $mail_password, NULL, 1, array('DISABLE_AUTHENTICATOR' => 'GSSAPI'));
    
    $str = imap_errors(); print_r($str);
    echo $str;
    
    $mails = imap_search($mbox, 'UNSEEN');
    Ответ написан
    Комментировать
  • Пагинация MVC PHP как передать параметр?

    @LikeSD Автор вопроса
    Системный администратор
    Решил проблему.
    Если сделать /ticket/main/?p=2, то все работает. В контроллере сделал пустой action_index, а нужный вывод отправил в action_main. Все работает, как и хотел.
    Ответ написан
    Комментировать
  • Не приходят письма php mail?

    @LikeSD
    Системный администратор
    На второй странице посмотрите, в $_POST вообще хоть что-нибудь приходит? Возможно там NULL и поэтому писем нет
    Ответ написан
    Комментировать