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

时间:2016-09-29 05:25:33

标签: javascript php jquery html css

我有一个jquery问题。我目前将一些数据存储在一个由逗号分隔的mysql表中。以下是存储数据的示例

  

Tbl_stage“概念,前提,10毫米,20毫米”

一旦我在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> 

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:3)

  • 首先准备一个array string周围没有任何空格。
  • 通过使用从checkbox检索到的text arraytrimmed标记DB标签来过滤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>
$totalInc

答案 1 :(得分:2)

使用查询从表中获取数据并将每个元素推送到数组中。 然后使用该数组检查复选框标记中的每个数据和回显

<?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>

答案 2 :(得分:1)

我们在js中有分割功能 参考:http://www.w3schools.com/jsref/jsref_split.asp

拆分从服务器获取的字符串。它将是单词数组 例如

var str = "concept , prerevenue , 10mm , 20mm";
var res = str.split(",");

然后你将获得带有值的数组 概念 prerevenue 10毫米 20毫米

您可以循环它并将选中的值设置为true

$("input[type=checkbox][value=res[i]").attr("checked","true");

并且不要忘记将输入值的值与标签值相同

REF:http://jsfiddle.net/LCU4C/2/

答案 3 :(得分:1)

按如下方式更新您的脚本:

<?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>