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