Home >Backend Development >PHP Tutorial >php 批量修改数据时 input[type=checkbox]发生的问题
input[type=checkbox] 我用了js 把 数值 'On' 转成了方便我输入数据库的 1 和 0
$('input[type="checkbox"]').change(function(){ this.value ^= 1;});
if (isset($_POST["edit_menu"])) { $gid =$_POST["gid"]; $sql = ""; $menuCount = count($_POST["id"]); for($i=0;$i<$menuCount;$i++) { $title = $_POST["title"]; $url = $_POST["url"]; $id = $_POST["id"]; $blank = $_POST["blank"]; $sql .= "UPDATE `menu` set title='" . $title[$i] . "', url='" . $url[$i] . "', blank='" . $blank[$i] . "' WHERE id='" . $id[$i] . "' AND gid = '$gid';"; } $stmt = $pdo->exec($sql);}
没有被勾选的 checkbox 是不会被提交的!
php 只知道有多少个 checkbox 被选中,但不知道选中的是哪些
所以你需要通过指定 checkbox 的 value 来识别被选中的 checkbox,而不是让他做0、1转换
checkbox.value 通常是备选项的序号或 id
没有被勾选的 checkbox 是不会被提交的!
php 只知道有多少个 checkbox 被选中,但不知道选中的是哪些
所以你需要通过指定 checkbox 的 value 来识别被选中的 checkbox,而不是让他做0、1转换
checkbox.value 通常是备选项的序号或 id
在客户端解决不可以吗?
打钩的,就把target=”_blank“, 写进对应的链接的属性里面,
$('input[type="checkbox"]').click(function(){ var link_id,checkbox_id; checkbox_id=$this.id; //得到当前复选框的ID赋值到checkbox_id,变换成对应链接的ID,赋值给link_id,然后 $(link_id).attr( "target", ($(checkbox_id).value==‘1’)?"_blank":"_self" );});
在客户端解决不可以吗?
打钩的,就把target=”_blank“, 写进对应的链接的属性里面,
$('input[type="checkbox"]').click(function(){ var link_id,checkbox_id; checkbox_id=$this.id; //得到当前复选框的ID赋值到checkbox_id,变换成对应链接的ID,赋值给link_id,然后 $(link_id).attr( "target", ($(checkbox_id).value==‘1’)?"_blank":"_self" );});
唠叨大哥说的是对的,
复选框不是这样用的,
不是选中或不选中其值会变,而是选中后,标签会有个checked="checked"的属性。
复选框的值是用来定位的。你把复选框的值变成和id一样就行了。