Ajax提交数据,后台写入数据库问题? [ 2.0 版本 ]
如图,我用传统表单写前台:
<div class="input">
<label>标签名称:</label>
<input type="text" id="label_name" placeholder="请输入标签名称">
</div>
<div class="input">
<label>排序:</label>
<input type="text" id="sort" class="short"><span>数字越大,排在越前</span>
</div>
<script type="text/javascript">
$("#submit-btn").click(function(){
var label_name = $("#label_name").val();
var sort = $("#sort").val();
$.ajax({
url:'/sale/add-label',
type:'post',
data:{'label_name':label_name,'sort':sort},
dataType:'json',
success:function(data){
},
error:function(data){
//alert('错误');
}
});
})
</script>
后台里的actionAddLabel如下:
public function actionAddLabel() {
$model = new Label();
if ($model->load(Yii::$app->request->post())) {
$model->save();
echo '1';
} else {
print_r(Yii::$app->request->post());
echo '0';
}
}
前台提交后可以看到传过来的label_name和sorf的数据,但是没法写入到数据表里,请问要怎么修改?本人初学yii,望大神指教,谢谢!
最佳答案
其他 7 个回答
-
-
应该是验证没过;不要用
$model->load()
共 1 条回复haoshu0812 回复于 2017-02-06 18:05 回复把表单load去掉和data:{'label_name':label_name,'sort':sort},改为data:{'label[label_name]':label_name,'label[sort]':sort},就可以通过,问题出现在load上,load的第二个参数设置为空就可以保存,这个是什么原因呢?
-
根本就没有load到数据,需要把 data:{'label_name':label_name,'sort':sort},改为 data:{'Label[label_name]':label_name,'Label[sort]':sort}
共 1 条回复haoshu0812 回复于 2017-02-06 20:07 回复是的,改了之后还是不能load到数据,如果这样写就能load导数据:$model->load(Yii::$app->request->post(), $formName =''),这是什么原因呢?
-
-
-
zhoupenghui 回答于 2017-02-07 14:00 举报
你的form表单标签呢,post提交还要严重csrf,你没有验证
-
haoshu0812
注册时间:2017-01-08
最后登录:2017-03-06
在线时长:2小时55分
最后登录:2017-03-06
在线时长:2小时55分
- 粉丝0
- 金钱80
- 威望0
- 积分100