我有一个jquery问题。我目前将一些数据存储在mysql表中,该表由逗号分隔。下面是存储
的数据示例Tbl_stage "概念,预收入,10mm, 20mm "
当我在php中回显这些数据时,我需要每个复选框被选中,如果它包含在数组
<label><input type="checkbox" id="check-item" class="primary1" checked /> concept </label>
<label><input type="checkbox" id="check-item" class="primary1" checked /> pre-revenue </label>
<label><input type="checkbox" id="check-item" class="primary1" /> sample blank data </label>
非常感谢你的帮助! - 首先准备一个
array
,string
周围没有任何空格。 - 用
DB
中trimmed
的array
值测试标签中的text
来过滤checkbox
元素。 - 使用
jQuery.prop(PROPERTY, STATE)
设置checked
属性
var str = " concept , prerevenue , 10mm , 20mm ";
var arr = str.split(' , ').map(function(el) {
return el.trim();
});
$('.primary1').filter(function() {
return (arr.indexOf($(this).closest('label').text().replace('-', '').trim()) !== -1);
}).prop('checked', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<label>
<input type="checkbox" id="check-item" class="primary1" />concept</label>
<label>
<input type="checkbox" id="check-item" class="primary1" />pre-revenue</label>
<label>
<input type="checkbox" id="check-item" class="primary1" />sample blank data</label>
使用查询从表中获取数据并将每个元素压入数组。然后使用数组来检查复选框标签
中选中的每个数据和echo。<?php
$query = 'Your query here to get the data from database table';
$results = array();
while($row = mysql_fetch_assoc($query))
{
$results[] = $row;
}
?>
<label>
<input type="checkbox" id="check-item" class="primary1" <?php if(in_array("concept",$results)) echo "checked";?> /> concept </label>
<label>
<input type="checkbox" id="check-item" class="primary1" <?php if(in_array("pre-revenue",$results)) echo "checked";?> /> pre-revenue </label>
<label>
<input type="checkbox" id="check-item" class="primary1" <?php if(in_array("sample blank data",$results)) echo "checked";?> /> sample blank data </label>
按如下方式更新脚本:
<?php
$arr = array("concept" , "prerevenue" , "10mm" , "20mm"); ?>
<label><input type="checkbox" id="check-item" class="primary1" <?php echo in_array("concept",$arr) ? "checked" : "" ?> /> concept </label>
<label><input type="checkbox" id="check-item" class="primary1" <?php echo in_array("prerevenue",$arr) ? "checked" : "" ?> /> prerevenue </label>
js中有split函数裁判:http://www.w3schools.com/jsref/jsref_split.asp
拆分从服务器获得的字符串。它将是一个单词数组例如
var str = "concept , prerevenue , 10mm , 20mm";
var res = str.split(",");
那么你将得到一个数组的值概念prerevenue10毫米20毫米
您可以循环它并将检查值设置为true
$("input[type=checkbox][value=res[i]").attr("checked","true");
,不要忘记输入值的值与标签值相同
裁判:http://jsfiddle.net/LCU4C/2/