安卓电视下DIV提交表单

要做一个网页,在电视上用浏览器来看,用遥控器来操作。
网页里涉及使用一些单选框。
如果使用现在想使用DIV的方式,选中后可提交。
类似于这样的:

img

这个只是CSS和JS的代码的样式,要怎么实现选中后将数据提交到数据库呢

请大家帮忙看看怎么搞呢。

使用ajax提交来代替form的表单提交。通过不同选项点击事件为变量赋值,然后组成json,发送请求

该回答引用ChatGPT
首先,使用DIV来实现单选框的效果需要用到CSS和JS。具体实现步骤如下:
1. HTML代码部分
在HTML中,我们需要使用DIV来代替input type="radio",并且给每个DIV添加一个自定义属性,用来标识这个DIV的值。例如:





2. CSS代码部分
在CSS中,我们需要设置每个DIV的样式,使其看起来像一个单选框。例如:

.radio {
width: 20px;
height: 20px;
border: 1px solid #ccc;
border-radius: 50%;
margin-right: 10px;
display: inline-block;
cursor: pointer;
}
.radio.selected {
background-color: #ccc;
}

其中,.radio.selected表示被选中的DIV的样式。
3. JS代码部分
在JS中,我们需要为每个DIV添加一个点击事件,当点击某个DIV时,将其标记为选中状态,并将其值存储到一个隐藏的input元素中。例如:

var radios = document.querySelectorAll('.radio');
var hiddenInput = document.querySelector('#hidden-input');
radios.forEach(function(radio) {
radio.addEventListener('click', function() {
radios.forEach(function(r) {
r.classList.remove('selected');
});
this.classList.add('selected');
hiddenInput.value = this.getAttribute('data-value');
});
});

其中,hiddenInput是一个隐藏的input元素,用来存储选中的值。当某个DIV被点击时,将其标记为选中状态,并将其值存储到hiddenInput中。
4. 提交表单部分
最后,在提交表单时,我们需要将hiddenInput的值提交到后台。例如:









其中,name="selected-value"表示hiddenInput的名称,submit.php是后台处理程序的地址。在提交表单时,hiddenInput的值将会被提交到后台。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要实现DIV的方式提交表单数据,可以使用JavaScript来监听单选框的选中事件,然后将选中的值保存到隐藏的input元素中,再将整个表单提交到后台。以下是实现的代码示例:

HTML代码:

<div class="radio-box" id="radio-box">
    <div class="radio-option">
        <div class="radio-label">选项1</div>
        <div class="radio-button" data-value="1"></div>
    </div>
    <div class="radio-option">
        <div class="radio-label">选项2</div>
        <div class="radio-button" data-value="2"></div>
    </div>
    <div class="radio-option">
        <div class="radio-label">选项3</div>
        <div class="radio-button" data-value="3"></div>
    </div>
    <input type="hidden" name="radioValue" id="radioValue" />
</div>

<button id="submitBtn">提交</button>

CSS代码:

.radio-box {
    display: flex;
    flex-direction: column;
    border: 1px solid #ccc;
    padding: 10px;
}

.radio-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 40px;
    cursor: pointer;
}

.radio-label {
    margin-right: 20px;
}

.radio-button {
    border: 1px solid #ccc;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    margin-right: 10px;
}

.radio-button.selected {
    background-color: #0080ff;
}

input[type="hidden"] {
    display: none;
}

JavaScript代码:

var radioBox = document.getElementById("radio-box");
var radioBtns = radioBox.getElementsByClassName("radio-button");
var radioValueInput = document.getElementById("radioValue");
var submitBtn = document.getElementById("submitBtn");

for (var i = 0; i < radioBtns.length; i++) {
    radioBtns[i].addEventListener("click", function() {
        // 取消其他单选框的选中状态
        for (var j = 0; j < radioBtns.length; j++) {
            radioBtns[j].classList.remove("selected");
        }
        // 设置当前单选框的选中状态
        this.classList.add("selected");
        // 保存选中的值到隐藏的input元素中
        radioValueInput.value = this.getAttribute("data-value");
    });
}

submitBtn.addEventListener("click", function() {
    // 提交表单到后台
    // ...
});

在JavaScript代码中,我们通过遍历单选框的DOM元素,监听单选框的点击事件。当用户点击单选框时,我们首先将其他选项的选中状态取消,然后将当前选中的单选框设置为选中状态,并将选中的值保存到隐藏的input元素中。在提交表单时,我们通过表单提交的方式将数据提交到后台。
如果我的回答解决了您的问题,请采纳!