Jump to content
winzard

Mostrar opção select dentro de uma tabela

Recommended Posts

winzard

Boas,

Preciso de ajuda que ando aqui que só falta bater com a cabeça nas paredes e possivelmente até é algo simples :P

Na minha página tenho a tabela como está abaixo, e pretendo que quando carregar no botão ele me diga os valores da linha que tenha a checkbox como checked.

<table style="width:100%" class="table table-condensed table-hover" data-click-to-select="true">
<thead>
 <tr>
	 <th data-field="select" data-checkbox="true"></th>
	 <th data-field="planta" data-align="right">Planta</th>
	 <th data-field="escala" data-align="center">Escala</th>
	 <th data-field="layout" data-align="">Layout</th>
 </tr>
</thead>
<tbody>
 <tr>
	 <td style="vertical-align: middle"><input type="checkbox" class="checkbox" /></td>
	 <td style="vertical-align: middle" width="45%">Planta 1</td>
	 <td width="30%">
		 <select class="form-control" id="scales">
			 <option value="2000">2000</option>
			 <option value="50000">5000</option>
			 <option value="20000">20000</option>
		 </select>
	 </td>
	 <td width="30%">
		 <select class="form-control" id="layouts">
			 <option value="A4_Vertical">A4</option>
			 <option value="A3_Vertical">A3</option>
		 </select>
	 </td>
 </tr>
 <tr>
	 <td style="vertical-align: middle"><input type="checkbox" class="checkbox" /></td>
	 <td style="vertical-align: middle" width="45%">Planta 2</td>
	 <td width="30%">
		 <select class="form-control" id="scales">
			 <option value="2000">2000</option>
			 <option value="50000">5000</option>
			 <option value="20000">20000</option>
		 </select>
	 </td>
	 <td width="30%">
		 <select class="form-control" id="layouts">
			 <option value="A4_Vertical">A4</option>
			 <option value="A3_Vertical">A3</option>
		 </select>
	 </td>
 </tr>
</tbody>
</table>

Até aqui tudo bem, usei a função abaixo e consigo obter isso, no entanto, o que me está a dar erro é a obter o valor selecionada no select, uma vez que como código abaixo para a escala é me dada a seguinte informação "2000 5000 20000" e o que pretendia era mostrar o valor que o utilizador selecionou, ou seja mostrar só por exemplo "5000"..

$('td .checkbox').each(function () {
	 if (this.checked) {
		 var planta_check = this.parentNode.parentNode.getElementsByTagName("td")[1].textContent;
		 var escala_check = this.parentNode.parentNode.getElementsByTagName("td")[2].textContent;
		 var layout_check = this.parentNode.parentNode.getElementsByTagName("td")[3].textContent;
	 }
 });

Help me please ;) ;) ;)


Pedro Henriques

http://zoomto.pt/

Share this post


Link to post
Share on other sites
HappyHippyHippo

antes de mais, tem um erro grave de HTML, existem elementos que possuem o atributo id com valores iguais

como o próprio nome do atributo indica (id proveniente de identification), não poderão existir elementos com id's iguais, e como tal, o teu código está errado

segundo, para quem está a usar a biblioteca jquery, não percebo a razão de usar javascript standard para fazer a "navegação" dos elementos do DOM

terceiro, se pretendes obter o valor do selectbox, porque é que estás a pedir o texto do elemento td ?

o que pretendias seria algo como:

$('table input:checked').each(function() {
 var row     = $(this).parents('tr');
 var scale   = row.find('td:nth-child(2) select').val();
 var layouts = row.find('td:nth-child(3) select').val();

 alert('scale : ' + scale + ' | layout : ' + layout);
});


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
winzard

Era isso mesmo,

No código que está ai, os id repetem-se pois foi "inventado" e escapou-me essa, pois a tabela é construida com após um query à BD, e ai sim, cada os id dos select não são iguais. :-p


Pedro Henriques

http://zoomto.pt/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.