Php 更改单选值并与数据库和html表中的特定id关联

Php 更改单选值并与数据库和html表中的特定id关联,php,javascript,mysql,database,Php,Javascript,Mysql,Database,我有一个ajax请求,生成一个如下所示的表: | ID | Name | Radio | ======================================== | 123456 | One | Y,N | ======================================== | 789000 | Two | Y,N | ======================

我有一个ajax请求,生成一个如下所示的表:

|   ID         |   Name   |   Radio    |
========================================
|  123456      |   One    |     Y,N    |
========================================
|  789000      |   Two    |     Y,N    |
========================================
|  123456      |  Three   |     Y,N    |
========================================
|  348202      |   Four   |     Y,N    |
  
我需要将这些单选开关的值存储在数据库中,然后将它们与具有该ID的所有行相关联。例如,如果我单击第1行或第3行中的Y按钮,那么我将使Y与这两行相关联

我从单击按钮获取ID,然后通过表单值将其传递给db表。现在如何将每个无线电输入值与其各自的ID相关联?如果收音机换了,它将如何工作?我如何建立这种关联并只更新这些值

任何想法、片段或链接都将非常感谢,以帮助我掌握如何做到这一点

编辑 为了确保我的问题是明确的,我确实有一部分,我抓取id,并可以将其与单选按钮相关联。我正在使用它(用于我的真实代码,而不是我的“草图”):


我将把这个值,ID,连同从切换中选择的任何内容一起发布到db。在我的实际项目中,我需要将多个切换与它们的ID相关联。

首先生成表时,在包含ID的特殊孔中构建单选按钮的ID。例如, 第一行单选按钮的ID可以是123456-1 第二行单选按钮的ID可以是789000-1
第三行单选按钮的ID可以是123456-2 第四行单选按钮的ID可以是123456-1

在onClick中,获取ID并将其传递给DB,然后用新值更新具有该ID的所有行


然后在AJAX返回后,运行另一个Javascript例程,该例程跨越所有表并查找与此条件匹配的ID:123456-*,您将获得这些单选按钮并将其切换为ON。这将处理当前表视图中显示的所有行(我假设您可能将表拆分为多个页面)。

以下是一种方法:

jsFiddle:

HTLM

尽管我确实认为复选框会更好/简化解决方案

编辑

要完成回答,您可以通过为服务器分配一个隐藏的表单字段并提交表单(完整回发),将MyVAL发布到服务器。或者,您可以通过ajax将值发布到服务器,避免完全回发


如果只想发布已更改的值,则需要在页面加载时记住它们的值,并且仅当它们与原始值不同时才将它们添加到myVals数组中

我更新了我的问题,希望它能澄清一些问题。谢谢你的提琴,我最感兴趣的部分是你编辑后写的。这是我最需要帮助和信息的地方。如何在数据库表中更新无线电状态?它会创建一个具有相同id的新行,还是覆盖现有id状态?在您的示例中,我还需要弄清楚如何在所有相似的数字之间关联该布尔值。所以,若从0更改为1,它会为不同行中的所有类似数字更新该值。
$j('button').live("click", function(){
    var thisSku = $j(this).closest('tr').find('td:eq(3)').text();
    $j('.skuContainer input').val( thisSku );
}); 
<table>
    <tbody>
        <tr>
            <td>123456</td><td>One</td><td>Yes<input type="radio" value="0" name="One" />No<input type="radio" value="1" name="One" /></td>
        </tr>
        <tr>
            <td>789000</td><td>Two</td><td>Yes<input type="radio" value="0" name="Two" />No<input type="radio" value="1" name="Two" /></td>
        </tr>
        <tr>
            <td>123456</td><td>Three</td><td>Yes<input type="radio" value="0" name="Three" />No<input type="radio" value="1" name="Three" /></td>
        </tr>
    </tbody>
</table>

<input type="button" id="btnTest" value="Get Values" />
$("#btnTest").click(function(){

    var myVals = [];

    $("tr").each(function(){
       var $row = $(this);
        alert($row.find("> td:eq(2) > input:checked").val());
        myVals.push({
            id: $row.find("> td:eq(0)").html(),
            val: $row.find("> td:eq(2) > input:checked").val()
        });
    });

    alert(JSON.stringify(myVals)); 

});