2016-11-27 84 views
1

有什么方法可以将复选框链接到文本框。例如,如何将复选框链接到HTML/PHP中的文本框

<form> 
<table> 
    <tr> 
     <td><input name="databaseIDs[]" type="checkbox" value="49"/></td> 
     <td><input type="text" name="first" value="First Input"/></td> 
    </tr> 
    <tr> 
    <td><input name="databaseIDs[]" type="checkbox" value="50"/></td> 
    <td><input type="text" name="first" value="Second Input"/></td> 
    </tr> 

<tr> 
    <td><input name="databaseIDs[]" type="checkbox" value="60"/></td> 
    <td><input type="text" name="first" value="Third Input"/></td> 
</tr> 
<tr> 
    <td><input name="databaseIDs[]" type="checkbox" value="38"/></td> 
    <td><input type="text" name="first" value="Fourth Input"/></td> 
</tr> 
</table> 

</form> 

如您所见,复选框是一个数组,每个复选框值都是数据库ID。我正在尝试做的是更新数据库值,其中id等于用户勾选的复选框的ID。例如,如果用户勾选第一个复选框(值为49),并提交表单,数据库将更新ID为49的数据库中的值。

回答

0

这个问题并不需要任何jQuery(或者JavaScript)。由于您使用复选框而不是单选按钮,我假设您希望一次能够更新多个实体。

实现这一目标的最简单的方法是设置你的格式如下:

<table> 
    <tr> 
     <td><input name="selected_ids[]" type="checkbox" value="49"/></td> 
     <td><input type="text" name="data[49][name]" value="First Input"/></td> 
    </tr> 
    <tr> 
    <td><input name="selected_ids[]" type="checkbox" value="50"/></td> 
    <td><input type="text" name="data[50][name]" value="Second Input"/></td> 
    </tr> 

<tr> 
    <td><input name="selected_ids[]" type="checkbox" value="60"/></td> 
    <td><input type="text" name="data[60][name]" value="Third Input"/></td> 
</tr> 
<tr> 
    <td><input name="selected_ids[]" type="checkbox" value="38"/></td> 
    <td><input type="text" name="data[38][name]" value="Fourth Input"/></td> 
</tr> 
</table> 

正如你所看到的复选框将代表你想更新实体。当表单提交时,您的遗嘱会以0个或更多个ID的数组结尾,每个ID都与一个复选框相对应。然后,您可以遍历这个ID数组,并在data关联数组中匹配name值。这个循环将是这个样子:

foreach($_POST['selected_ids'] as $id){ 
    $name = $_POST['data'][$id]['name']; 
    //TODO: update the database 
} 

此设置允许您通过该公约<input name="data[<entity id>][<database field>]">

+0

非常感谢你的回答。这正是我一直在努力实现的。你的答案100%解决了问题。我很感激。 – Prince

0

此解决方案适用于您的条件没有任何修改你的HTML标记。

如果你得到复选框的id那么你可以得到与该复选框,输入字段的值,如下所示:

<script> 
var id = 49;//you will get this id after form submission, i assumed it 49 for example 
$('input[type="checkbox"]').each(function(){ 
    if($(this).attr('id')===id){ 
     var desired_value = $(this).parent().find('input[type="text"]').val(); 
    } 
}); 
console.log(desired_value);//First Input// use desired value as you like 
</script> 

我希望它能帮助

+0

谢谢您的贡献下列寻衅<input> S代表每个实体很容易添加更多的数据。我非常感谢 – Prince