标记 - 在单个POST中保存多个输入值

时间:2014-11-12 04:57:44

标签: php jquery html yii tag-it

我正在使用Jquery Tag it,我想将输入的标签保存到我的数据库中。

在HTML中

<ul id="myTags" name="myTags"></ul>  

当我输入新标记时,它会自动生成<li><input hidden>, 但所有生成的<input hidden>都是相同的名称=&#34;标记&#34; 只有不同,那么当我$_POST时尝试print_r,结果只是我输入的最后一个值。

我如何获得所有价值?还是其他任何好的建议?感谢

    public function actionSubmit(){

    $token = $_POST['YII_CSRF_TOKEN'];              
    if ($token !== Yii::app()->getRequest()->getCsrfToken()){

        Yii::app()->end();
    }
    $app_id = Yii::app()->user->getState('app_id');
    $tags = $_POST['tags'];


    $model = Games::model()->findByAttributes(array('id'=>$app_id));
    $model->keywords = $tags;
    $model->save();

    if($model->save()){
        print_r("ok");  
    }else{
        print_r("no");  
    }
}

4 个答案:

答案 0 :(得分:1)

尝试

$("#myTags").tagit({
    fieldName: "tags[]"
});

答案 1 :(得分:0)

尝试以下代码:

//jquery code, on form submit
$('#form-id').submit(function(){

   var allTags = ''
   $('input:[name=tags]').each(function(){
       allTags += "," + $(this).val();
   });

   allTags = allTags.substr(1);

});

答案 2 :(得分:0)

name="tags[]"标记中尝试<input hidden>

基本上在HTML中创建隐藏变量数组,其名称与name="tags[]"

相同

因此,当您从$_POST获取标记时,它会从$_POST['tags']返回标记数组

答案 3 :(得分:0)

只显示演示使用此代码并运行浏览器

&#13;
&#13;
<?php

if(isset($_REQUEST['submit']))
{
	print_r( $_POST['tags'] );
}
?>
<body>
<form method="post">
    <ul id="myTags" name="myTags" style="list-style:none;">
        <li><input type="hidden" value="1" name="tags[]" /></li>
        <li><input type="hidden" value="2" name="tags[]" /></li>
        <li><input type="hidden" value="3" name="tags[]" /></li>
        <li><input type="hidden" value="4" name="tags[]" /></li>
        <li><input type="hidden" value="5" name="tags[]" /></li>
    </ul> 
    <input type="submit" name="submit" value="submin" />
</form>
</body>
&#13;
&#13;
&#13;

使用名称也是数组

&#13;
&#13;
<li><input type="hidden" value="...any value ...." name="tags[]" /></li>
&#13;
&#13;
&#13;