2017-02-13 2 views
0

Я использую ниже код кода.target _blank в HTML :: не работает yii2

[ 
      'attribute' => 'Application', 
      'format' => 'html', 
      'value' => function ($dataProvider) { 
       $student_username = $dataProvider->student_username; 
       return Html::a('Print', Url::toRoute(['/coordinatorpanel/print-form', 'student_username' => $student_username]), 
        ['target' => '_blank', 'class' => 'btn btn-success center-block']); 
      }, 
     ] 

HTML ВЫВОД:

<a class="btn btn-success center-block" href="/nse/frontend/web/index.php?r=coordinatorpanel%2Fprint-form&amp;student_username=COR39690113" target="_blank"> 

Но, когда я нажимаю на ссылку, я не переходите на новую вкладку, запрос обрабатывается в той же вкладке. Я пробовал это как на «Mozilla», так и на «Chrome».

Любая помощь будет глубоко rewared :)

ответ

0

Мне нужно было пойти другим путем, чтобы правильно запустить код.

You can click here for reference

Ниже кусок кода, который я изменил и работал для меня. Мне пришлось установить событие onclick и установить href как пустую.

[ 
    'attribute' => 'Application', 
    'format' => 'raw', 
    'value' => function ($dataProvider) { 
     $student_username = $dataProvider->student_username; 
     return Html::a('Print', '', 
      ['onclick' => "window.open ('".Url::toRoute(['/coordinatorpanel/print-form', 
          'student_username' => $student_username])."'); return false", 
      'class' => 'btn btn-success center-block']); 
    }, 
], 
0

Я предполагаю, что этот код находится внутри какой-то виджет, который форматирует вывод, потому что это общий случай. Если так, просто измените формат на raw.

+0

Я изменил его, но он все тот же. Я обновил код –

+1

Он не работает с '' format '=>' raw''? Проверьте источник, если метка ссылки создана правильно. – Bizley

+0

Благодарим вас за ответ. Я обновил вышеуказанный код с выходом HTML для тега ссылки, установив Format в «raw». Но все равно никакого положительного эффекта. –

0

Отключить Pjax в gridview. В моем случае я хотел отобразить изображение в новом окне, и вместо этого он появился как искаженные символы в сетке.

'format' => "raw", 
'value' => function ($d) { 
    return Html::a($d->image_filename, '/'.$d->imagePath(),['target'=>'_blank', 'data-pjax'=>"0"]); 
    }, 
0

Попробуйте изменить свой код, как показано ниже

[ 
     'attribute' => 'Application', 
     'format' => 'raw', 
     'value' => function ($dataProvider) { 
      $student_username = $dataProvider->student_username; 
      return Html::a('Print', Url::toRoute(['/coordinatorpanel/print-form', 'student_username' => $student_username]), 
       ['target' => '_blank', 'class' => 'btn btn-success center-block']); 
     }, 
    ] 

Здесь используется 'format' => 'raw', чтобы избежать форматирования.

0

Попробуйте этот путь, он также работает отлично -

Проблема также может быть в pjax. даже если вы используете формат row.

В этом случае просто добавьте linkSelector параметров:

\yii\widgets\Pjax::begin(
    ['id' => 'samle', 'linkSelector' => 'a:not(.target-blank)'] 
); 

и добавить соответствующий класс CSS к вашим ссылкам:

return Html::a(
    'Print', 
    ['/site/print', 'id' => $model->id], 
    ['target'=>'_blank', 'class' => 'target-blank'] 
); 

Это позволит предотвратить только эти ссылки из pjax так что они могут быть открыты в новом вкладка.

Смежные вопросы