php - Yii2 提交表单开始下载视图文件
问题描述
我yii2
在一个名为的页面上有一个简单的表单bestellungadmin.php
如果我点击提交按钮,数据没有提交,它开始下载一个名为bestellungadmin
浏览器控制台打印消息:
jquery.js?v=1556869380:7841 Resource interpreted as Document but transferred with MIME type application/x-httpd-php: "https://rueckschlag.com/bestellungadmin?ID=101".
我在该项目的其他站点上有很多相同的表格,所有表格都在工作,只是这个没有。
我的控制器:
public function actionBestellungadmin(){
if(Yii::$app->user->isGuest){
return $this->goHome();
}else if(Yii::$app->user->identity->getAdmin()){
$model= new Bestellung();
$model->load(Yii::$app->request->get());
if($model->load(Yii::$app->request->post())){
$model->updateBestellung();
Yii::$app->session->setFlash('success', 'Bestellung erfolgreich aktuallisiert.');
return $this->redirect('bestellungenoffen');
}else if(Yii::$app->request->get('ID')){
$ID = Yii::$app->request->get('ID');
$query = new Query;
// compose the query
$query->select('*')
->from('bestellung')
->where("ID = '$ID'");
// build and execute the query
$row = $query->all();
return $this->render('bestellungadmin', ['model'=>$model, 'output'=>$row]);
}else{
return $this->render('bestellungenoffen');
}
}else{
return $this->goHome();
}
}
我的表格:
<?php
foreach($output as $row){
echo "<div class='row artikelAdmin'>";
$form = ActiveForm::begin(['options'=>['enctype'=>'multipart/form-data']]);
echo $form->field($model, 'Nummer')->textInput(['readonly' => true, 'value' => $row['Nummer']]);
echo $form->field($model, 'Datum')->textInput(['readonly' => true, 'value' => $row['Datum']]);
echo $form->field($model, 'Artikel')->textInput(['readonly' => false, 'value' => $row['Artikel']]);
echo "<a href='".$row['Rechnung']."'>Rechnung</a>";
echo $form->field($model, 'Anmerkung')->textArea(['readonly' => true, 'value' => $row['Anmerkung']]) ;
echo $form->field($model, 'Email')->textInput(['readonly' => false, 'value' => $row['Email']]) ;
echo $form->field($model, 'Adresse')->textInput(['readonly' => false, 'value' => $row['Adresse']]) ;
echo $form->field($model, 'PreisArtikel')->textInput(['readonly' => false, 'value' => $row['PreisArtikel']]) ;
echo $form->field($model, 'PreisGesamt')->textInput(['readonly' => false, 'value' => $row['PreisGesamt']]) ;
echo $form->field($model, 'Status')->dropDownList(['Storniert' => 'Storniert','Warten auf Zahlungseingang'=> 'Warten auf Zahlungseingang', 'Zahlung erhalten, Versandvorbereitung' => 'Zahlung erhalten, Versandvorbereitung', 'Bestellung verschickt' => 'Bestellung verschickt'],['options'=>[$row['Status']=>['Selected'=>true]]])->label('Status Ändern');
echo $form->field($model, 'Nachricht')->textArea(['readonly' => false]) ;
echo "<div class='form-group'>";
echo Html::submitButton("speichern", ['class' => 'btn btn-primary ', 'name' => 'speichern']) ;
echo "</div>";
ActiveForm::end();
echo "</div>";
}
?>
解决方案
从表单选项中删除 enctype。(您不需要指定任何 enctype 选项 - Yii 将使用默认值)。
Multiform 用于上传,因此您的问题。
其他评论: 您的操作显然使用了变量 $ID,因此应在函数中指定如下:
public function actionBestelling($id = null){
这样做会自动为您填充 $id ,从而更容易编码。
$row 可以重写为:
$row = Bestellung::findAll([‘id’=>$id]);
这假定有多个具有相同 ID 的行......这很奇怪。如果不是这种情况,请使用:
$row = Bestellung::findOne($id);
如果确实只有一个ID,那么也可以去掉视图文件中的foreach语句。
推荐阅读
- powershell - 需要在 Power Shell 中编辑文本文件
- c# - 如何获取 AWS EventBridge 规则的最后/下一个执行时间?
- javascript - JavaScript - 获取开始日期和结束日期之间的日期数组
- python - 如何以不同的维度存储输出?
- javascript - 将 CSV 解析为一个数组后,在 D3 力图中组合节点和链接(Angular 和 D3.JS)
- sql - 用于执行聚合和计算百分比的 SQL 查询
- algorithm - 从一对 32 位整数到单个 64 位整数是否有一个简单的函数来保持旋转顺序?
- python - 如何使 Jupyter Lab 保存笔记本(以编程方式)
- .htaccess - Codeigniter 4 多站点 Apache VirtualHost
- c - 将树结构数据存储到 C 中的数组中