我会有这样的HTML:
<form class="form-horizontal" role="form">
<div class="form-group">
<ul class="select_list">
<li id="s1" class="chosen">Apple</li>
<li id="s2" style="display: none;">Peach</li>
<li id="s3" style="display: none;">Plum</li>
<li id="s4" class="chosen">Banana</li>
<li id="s5" style="display: none;">Grapes</li>
<li id="s6" class="chosen">Pear</li>
<li id="s7" style="display: none;">Kiwi</li>
</ul>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
如何使用$ _POST来获取class =“selected”
的元素的id答案 0 :(得分:1)
没有“直接”的方法来做到这一点。表示来自input
,textarea
和button
元素的POST数据,可能还有一些我忘了。您必须使用JavaScript将li
元素“转录”为其中之一,可能是<input type="hidden">
。例如:
var form = $formselector
form.onsubmit = function() {
var chosen = form.getElementsByClassName("chosen");
for (var i=0; i<chosen.length; i++) {
form.innerHTML += '<input type="hidden" name="chosen[]" value="'+chosen[i].id+'">';
}
}
这应循环遍历表单,查找所选类的所有元素,并添加带有该元素ID的隐藏输入。请注意,您可能需要更改隐藏输入元素的name
以匹配服务器端代码。另外,请务必更新$formselector
以实际匹配您的表单。
答案 1 :(得分:0)
您需要创建一个隐藏的输入并通过javascript或jquery为其赋值。
<form class="form-horizontal" role="form">
<input type="hidden" name="my_data" value="" />
<div class="form-group">
<ul class="select_list">
<li id="s1" class="chosen">Apple</li>
<li id="s2" style="display: none;">Peach</li>
<li id="s3" style="display: none;">Plum</li>
<li id="s4" class="chosen">Banana</li>
<li id="s5" style="display: none;">Grapes</li>
<li id="s6" class="chosen">Pear</li>
<li id="s7" style="display: none;">Kiwi</li>
</ul>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
<script>
$('.select_list').change(function(){
$('.my_data').val($(this).val());
});
</script>
试试这个......
答案 2 :(得分:0)
我明白了:
var value = [];
$('.chosen').each(function(){
value.push(this.id.substring(1));
});
$('.form-horizontal').submit(function(){
$('.form-horizontal').append('<input type="hidden" value="' + value +'"/>');
}