字符串到数组,然后选择复选框


String to array, then select check boxes

我有一个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周围没有任何空格。
  • DBtrimmedarray值测试标签中的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/