Я пытаюсь создать базовый CSV-файл с некоторыми данными. Когда я использую оповещение внутри вызова ajax, оно покажет мне данные (таким образом, происходит передача данных), но когда я нажму кнопку, это не сгенерирует файл CSV. Я новичок в yii2, так что я все еще учусь.
ОБНОВЛЕНО
Я изменил файлы
// просмотр export / index.php
Pjax::begin();
$form = ActiveForm::begin([
'action' => yii\helpers\Url::to(['cms-export/index']),
'options' => ['data' => ['pjax' => true]],
'layout' => 'horizontal',
'fieldConfig' => [
'horizontalCssClasses' => [
'label' => 'col-sm-2',
'offset' => 'col-sm-offset-2',
'wrapper' => 'col-sm-5',
'hint' => 'col-sm-5',
],
],
]);
echo $form->field($model, 'language')->dropDownList([//some list]);
echo $form->field($model, 'filename')->textInput()
echo Html::submitButton('Submit', ['class' => 'btn btn-primary'])';
ActiveForm::end();
Pjax::end();
// модель
public function generateCsv(){
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="sample.csv"');
$data = [datacomeshere];
$fp = fopen('php://output', 'w');
foreach ( $data as $line ) {
fputcsv($fp, $line, ';');
}
fclose($fp);
}
// контроллер
public function actionIndex()
{
$model = new Export();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
// validation works, but method does not work
\common\models\Export::generateCsv();
}
return $this->render('index' , ['model' => $model]);
}
Когда я нажимаю кнопку, в файле jquery отображается ошибка 500
xhr.send( options.hasContent && options.data || null );