控制器层
/**
* 即点即改
*
*/
public function actionJidian(){
//先从数据库中把值循环出来
$j=new Jidian();
$res=$j->find()->asArray()->all();
// print_r($res);
return $this->render('jidian',['res'=>$res]);
}
/**
* 即点即改中即改
* @return [type] [description]
*/
public function actionJigai(){
$uname=yii::$app->request->get('uname');
$id=yii::$app->request->get('id');
$j=new Jidian();
$result=$j->find()->where(['id'=>$id])->one();
$result->uname=$uname;
$re=$result->save();
if($re){
echo 1;
}else{
echo 0;
}
}
view层
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>即点即改</title>
<script src="./jquery/jquery.1.12.js"></script>
</head>
<body>
<table class="table">
<tr>
<td>编号</td>
<td>名字</td>
<td>性质</td>
</tr>
<?php foreach ($res as $key => $val): ?>
<tr class="allTr">
<td><?= $val['id']?></td>
<td tid="<?= $val['id']?>">
<span id="s<?= $val['id']?>"><?= $val['uname']?></span>
<input type="text" value="<?= $val['uname']?>" id="i<?= $val['id']?>" style="display:none">
</td>
<td><?= $val['hobby']?></td>
</tr>
<?php endforeach ?>
</table>
</body>
</html>
<script>
var id=id;//这样可以把第一个函数中的值提成全局的,然后第二个函数就可以用了
$(function(){
//点击 tr span 隐藏 input 显示
$('.allTr').children().click(function(){
var id=$(this).attr('tid');
$('#s'+id).hide('slow');
$('#i'+id).show('slow');
});
//失去焦点 span 显示 input 隐藏 并修改数据库中的数据
$(':input').blur(function(){
var _this=$(this);
var uname=_this.val();
var id=$(this).parent().attr('tid');
var url="?r=chen/jigai";
$.get(url,{'uname':uname,'id':id},function(msg){
if(msg){
_this.hide('slow');
_this.prev().show('slow');
_this.prev().html(uname);
}else{
_this.hide('slow');
_this.prev().show('slow');
}
});
})
})
</script>