【发布时间】:2014-10-20 20:06:40
【问题描述】:
使用 Yii,我有一个用于创建模型实例的表单。我通过普通的 HTML POST 而不是 ng-submit 提交表单。我目前有:
<form>
...
<div ng-repeat="category in dashboard.allCategories" class="category-radio-wrap" ng-model="dashboard.category">
<input id="radio-cat-{{category.id}}" type="radio" name="Activities[category]" value="{{category.id}}">
<label for="radio-cat-{{category.id}}">
<div class="color-spot" style="background-color:{{category.color}};border-color:{{darken(category.color)}}"></div>
<span class="label-text">{{category.title}}</span>
</label>
</div>
...
</form>
但是当我提交表单时,这些单选按钮并没有发布。我的所有其他字段,不是通过 Angular 生成的,都是。此外,如果我将其切换为 PHP for 循环,如下所示:
$cats = \app\models\Categories::find()->all();
foreach($cats as $cat) {
echo '<div class="category-radio-wrap">';
echo '<input id="radio-cat-'.$cat->id.'" type="radio" name="Activities[category]" value="'.$cat->id.'">';
echo '<label for="radio-cat-'.$cat->id.'">
<div class="color-spot" style="background-color:'.$cat->color.';border-color:'.$cat->color.';"></div>
<span class="label-text">'.$cat->title.'</span>
</label></div>';
}
...他们发布得很好。我可以这样做,但是由于我必须按原样发出对 JS 数组的请求,所以最好使用它而不是运行另一个查询,更不用说我失去了我的边界变暗 JS 函数去 PHP 路由出色地。关于为什么这些不提交以及如何解决它的任何想法?
【问题讨论】:
-
乍一看,这两个似乎不会输出相同的 HTML。你能确认一下吗?
-
name="Activities[category][]"末尾的额外括号是什么? -
是的,我的 PHP 解决方案不太正确。我已经更新它以匹配并且可以确认它仍然可以正常提交,而 Angular 解决方案没有。
-
那个括号来自于将它作为一系列复选框进行测试,以查看它是否特定于单选按钮。我已经删除了它们。
标签: javascript php angularjs