我有一个歌曲列表。我正在尝试确定列表中的歌曲是否已被选中。如果是这样,我需要知道复选框的值。
我的 html 看起来像这样...值 $song_id 是从数据库中的列表中拉取的。
<input type='checkbox' name='song[]' value='$song_id' />
可能有10首歌...可能有100个。我需要知道哪些已被检查以及如何获取值。
- 单击将项目的项目 ID 保存到数组;(js)
- 点击搜索是否已经选中了这样的ID;(在数组中)
添加
你应该使用jQuery(或原始javascript)来做你想要的逻辑。 jQuery http://jquery.com/使用它,你可以在前端做你想做的事情。在后端执行此操作是个坏主意。
提交表单后,$_POST['song']
变量将包含所有已选择$song_id
的数组。
你可以做这样的事情:
<input type='checkbox' name='song[]' class='songItem' value='$song_id' />
<input type='hidden' id='selectSongsHidden' />
在 JavaScript 中,
var selectedSongValues = [];
var selectedSongsString = ""; // for comma-separated values
function GetSelectedSongs()
{
var songs = $('.songItem');
var selectedSongs = [];
for(var i=0; i<songs.length; i++)
{
var checked = $(songs[i]).is(':checked');
if(checked)
{
selectedSongs.push(songs[i]);
}
}
for(var j=0; j<selectedSongs.length; j++)
{
selectedSongValues.push($(selectedSongs[j]).val());
selectedSongsString += $(selectedSongs[j]).val() + ",";
}
$('#selectSongsHidden').val(selectedSongsString);
}
按提交时,在 onclick 事件中,可以调用此函数并将值设置为隐藏字段。
您可以在工作 http://jsfiddle.net/A3e3y 中看到这一点
foreach ( $_POST['song'] AS $song_id ) {
// do smth with $song_id ...
}