2015-09-25 34 views
-1

我有一個問題給你。 現在有這樣的代碼:我如何用foreach列出一行?

<?php 
    use yii\helpers\Url; 
    use yii\helpers\Html; 
    use yii\web\JsExpression; 

    ?> 
    <form action="<?= Url::to(['/worker/equipment/updatecol']) ?>" id="editcol" method="POST"> 


    <div class="form-group"> 
    <?php foreach($columns as $column) { ?> 
     <label >Edit title</label> 
     <input type="text" class="form-control" value="<?= $column->equipment_column_title ?>" name="equipment_column_title" placeholder="Put name.." /> 
    <?php } ?> 

     </div> 

     <div class="form-group"> 
     <?php foreach($columns as $column) { ?> 
     <label>Edit type</label> 

     <select class="form-control" name="equipment_column_type"> 
     <option value="1" <?php if ($column->equipment_column_type==1) echo "selected='selected'"?>>Int</option> 
     <option value="2" <?php if ($column->equipment_column_type==2) echo "selected='selected'"?>>Varchar</option> 
     <option value="3" <?php if ($column->equipment_column_type==3) echo "selected='selected'"?>>Date</option> 
     <option value="3" <?php if ($column->equipment_column_type==4) echo "selected='selected'"?>>File</option> 
     </select> 
     <?php } ?> 
     </div> 


     <input type="hidden" name="_csrf" value="<?=Yii::$app->request->getCsrfToken()?>" /> 
     <?php foreach($columns as $column) { ?> 
     <input type="hidden" name="column" value="<?= $column->equipment_column_id ?>" /> 
     <?php } ?> 
     <button type="submit" class="btn btn-primary">Update column</button> 
    </form> 
</div> 

這是我的編輯choosen列正確的形式? 它的yii2框架,現在我的問題。這是編輯我的列的形式,但我不想列出所有的字段,但我想編輯一個字段。我怎麼做?

這個功能是我的表單控制器:

public function actionUpdatecolumnform() 

{ 

    $columns = EquipmentColumn :: find() -> all(); 
    return $this->renderAjax('_editcol',['columns'=>$columns]); 

} 

這個我有更新列:

public function actionUpdatecol(){ 
    $model = EquipmentColumn::findOne($_POST['id']); 
    $model -> equipment_column_title = $_POST['equipment_column_title']; 
    $model -> equipment_column_type = $_POST['equipment_column_type']; 
    $model -> update();} 

現在我們要去的jQuery,我在那裏有模態。

$('.editcolumn').click(function() 
{ 
    var essay_id = $(this).data('id'); 

    $.ajax({ 
     cache: false, 
     type: 'POST', 
     url: '".Url::to(['/worker/equipment/updatecolumnform'])."', 
     data: 'id='+essay_id, 
     success: function(data) 

     { 
      console.log(data); 
      $('#update_col').modal('show'); 
      $('#edit_col').html(data); 
     } 
    }); 
}); 

$('#editcol').submit(function(){ 
     var th=$(this); 
     console.log(th); 

     $.ajax({ 
         url: '".Url::to(['/worker/equipment/updatecol'])."', 
         type: 'POST', 
         data: th.serialize(), 
         error: function(data,status,text) {alert(text);}, 
         success: function(data) { 

      var n=noty({ 
    text: '".Yii::t('app', 'Type was saved')."', 
    type:'success', 
    layout: 'topCenter', 
    animation: { 

     open: 'animated bounceInLeft', // Animate.css class names 
     close: 'animated bounceOutLeft', // Animate.css class names 
     easing: 'swing', // unavailable - no need 
     speed: 500 // unavailable - no need 
    } 
    }) 
} 
}) 
}) 

這兩部分我用jQuery提供編輯字段。 我的問題是:此代碼列出了標題和類型的所有列,但我想只列出一列標題和類型,我想編輯。 感謝您的幫助:) 我認爲有一個foreach的問題,但我不知道。 :)

回答

0

您更新爲給定的id,但呈現所有。用foreach你可以看到所有的記錄。如果您只想查看已編輯的一條數據記錄,請發送一條數據以查看。

$columns = EquipmentColumn::model()->findAllByPk($id); 

通過該代碼,您可以獲得屬於已更改記錄的給定ID的所有信息。