2017-07-19 50 views
0

我有显示MySQL表一个html文件index.html的:试图每个元件从添加用于循环到一个数组在javascript

<body> 

    <div class="container"> 
    <table align="center"> 
     <tr> 
      <th bgcolor="#f0a00c">Col1</th> 
      <th bgcolor="#f0a00c">Col2</th> 
      <th bgcolor="#f0a00c">Col3</th> 
      <th bgcolor="#f0a00c">Col4</th> 
      <th bgcolor="#f0a00c">Col5</th> 
     </tr> 
     {% for b in obj %} 
     <tr> 
      <td>{{ b.col1 }}</td> 
      <td>{{ b.col2 }}</td> 
      <td>{{ b.col3 }}</td> 
      <td>{{ b.col4 }}</td> 
      <td>{{ b.col5 }}</td> 
     </tr> 
    {% endfor %} 

    </table> 
    </div> <!-- /container --> 
    </body> 

我希望把每个值从b.col2 & b.col3成单独的名单。所以,我试图添加它如下:

{% for b in obj 
var c1 = []; 
c1.push(b.col1); 
var c2 = []; 
c2.push(b.col2); 
%} 

但它不工作。什么是正确的方法?

UPDATE:

这是我的views.py:

def display(request): 
    find_duplicate() 
    return render_to_response('index.html', {'obj': my_model.objects.order_by('id')}) 

def get_dict(): 
    d={} 
    for e in my_model.objects.all(): 
     col2 = e.col2 
     col3 = e.col3 
     col2 = unicode(col2).encode('UTF8') 
     col3 = unicode(col3).encode('UTF8') 
     d.setdefault(col2, []) 
     d[col2].append(col3) 
    del d[''] 
    return d 

def find_duplicate(): 
    #print(d) 
    d = get_dict() 
    for k,v in d.items(): 
     if len(v) > 1: 
      name=[] 
      id=[] 
      #print(k) 
      for i in v: 
       #print(i) 
       reg1 = i.split("(")[0] 
       name.append(reg1) 
       reg2 = re.search(r'[A-Z0-9]*', i.split("_")[1]) 
       id.append(reg2.group()) 
      #print(name) 
      #print(id) 

所以表看起来像这样:

Number | NameAndId 
1  | Name1(something_1234) 
1  | Name2(something_3456) 
2  | Name3(something_7890) 
2  | Name4(something_0988) 

所以词典d的输出是:

{'1': ['Name1(something_1234)', 'Name2(something_3456)'], '2': 'Name3(something_7890)', 'Name4(something_0988)']} 

然后它在解析的find_duplicate功能COL2:

所以print(name)该功能将使名称和ID为每个键(num)['Name1', 'Name2'] & ['1234', '3456']关键1。所以,我有点想对每个键的名称和ID部分应用一些CSS样式。那么,如何将结果从find_duplicate()函数传递给html?

+0

包含值两个JavaScript名单,我相信它的JavaScript。我得到了这种方式显示教程 – akrama81

+0

不是本机JavaScript的表格。你能链接到教程吗?编辑 - 它看起来可能是django? https://docs.djangoproject.com/en/1.9/ref/templates/language/ – sauntimo

+1

我认为这是Django。 –

回答

0

它看起来像你想创建一个包含这些元素的JavaScript列表,你可以使用这个片段来创建一个包含从b.col2b.col3

<body> 

    <div class="container"> 
     <table align="center"> 
      <tr> 
       <th bgcolor="#f0a00c">Col1</th> 
       <th bgcolor="#f0a00c">Col2</th> 
       <th bgcolor="#f0a00c">Col3</th> 
       <th bgcolor="#f0a00c">Col4</th> 
       <th bgcolor="#f0a00c">Col5</th> 
      </tr> 
      {% for b in obj %} 
      <tr> 
       <td>{{ b.col1 }}</td> 
       <td>{{ b.col2 }}</td> 
       <td>{{ b.col3 }}</td> 
       <td>{{ b.col4 }}</td> 
       <td>{{ b.col5 }}</td> 
      </tr> 
      {% endfor %} 

      </table> 
    </div> <!-- /container --> 

    <script> 
     var c2 = [], c3 = []; 
     {% for b in obj %} 
     c2.push("{{ b.col2 }}"); 
     c3.push("{{ b.col3 }}"); 
     {% endfor %} 
     console.log([c2, c3]); 
     // ... Do what you need to do in javascript with these lists. 
    </script> 
</body> 
+0

甜!有效。非常感谢。 – akrama81

相关问题