如何查看是否选中了同名复选框,然后在 php 中检索值


How to see if checkboxes with the same name are checked and then retrieve the values in php

我有一个歌曲列表。我正在尝试确定列表中的歌曲是否已被选中。如果是这样,我需要知道复选框的值。

我的 html 看起来像这样...值 $song_id 是从数据库中的列表中拉取的。

<input type='checkbox' name='song[]' value='$song_id' />

可能有10首歌...可能有100个。我需要知道哪些已被检查以及如何获取值。

  1. 单击将项目的项目 ID 保存到数组;(js)
  2. 点击搜索是否已经选中了这样的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 ...
}