当我仍然没有tag_id
时,我完全不知道如何在表格中保存post_id
和post_id
。我使用数据库表中的选项
<?= Html::activeDropDownList($model, 'post_id', $ddItems, ['class' => 'form-control dd-list', 'prompt' => '']) ?>
该列表包含标签(PHP,Java等)。
用户最多可以在帖子上有3个标签。我尝试通过GET传递标签,并使用\Yii:$app->request->get(['id'])
接收控制器,但没有结果。
我的jQuery:
var ddList = $('.dd-list');
var tagList = $('.tag-container');
ddList.on('change', function () {
var tagHolder = document.createElement('div');
tagHolder.setAttribute('class', 'tag-holder');
var selected = $('.dd-list option:selected').text();
tagHolder.setAttribute('id', selected);
console.log(selected);
if(tagList.find('div').length > 2){
alert('You can have most 3 tags!');
return false;
}
if(tagList.find('#'+selected).length){
return false;
}else{
tagHolder.append(selected);
tagList.append(tagHolder);
$.ajax({
type : 'GET',
dataType : 'text',
url : '../post/create?tag=' + selected
});
}
});
actionCreate:
public function actionCreate()
{
$model = new Post();
$id = \Yii::$app->user->identity->id;
$ddItems = ArrayHelper::map(Tag::find()->all(),'tag_id', 'tag_name');
if ($model->load(Yii::$app->request->post())) {
date_default_timezone_set('Europe/Berlin');
$param = \Yii::$app->request->get();
$model->user_id = $id;
$model->date_create = date('m/d/Y');
if($model->save())
{
$tag = \Yii::$app->request->get(['tag']);
return $this->redirect(['view', 'id' => $model->post_id]);
}
throw new \yii\db\Exception("Some problem with DB connection ocurred!");
} else {
return $this->render('create', [
'model' => $model,
'ddItems' => $ddItems
]);
}
}
我收到错误:undefined tag
。我试图只获得一个标签(因为仍然不知道如何传递更多)。
达到目标的正确方法是什么?大约1天我一团糟!提前致谢了!
修改
我尝试使用on click
事件发送该标记,如下所示:
$('.create-post').on('click', function () {
var tag = $('input[name=chosen-tag]').val();
console.log(tag);
$.ajax({
type : 'GET',
dataType : 'text',
url : '../post/create?tag=' + tag
});
});
答案 0 :(得分:1)
我无法理解你的编程场景,但是......
更改
$tag = \Yii::$app->request->get(['tag']);
要
$tag = \Yii::$app->request->get('tag');