如何用foreach列出一行?

时间:2015-09-25 12:57:58

标签: javascript php jquery yii 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>

这是我编辑选择列的表格吗? 它的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存在问题,但我不确定。 :)

1 个答案:

答案 0 :(得分:0)

您更新给定的ID,但全部渲染。通过foreach,您可以看到所有记录。如果只想查看编辑过的一个数据记录,请发送一个数据进行查看。

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

使用该代码,您可以获得属于已更改记录的给定ID的所有信息。