Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lefestaf

Problema com DOM

Recommended Posts

ola galera!!! olha eu aqui outra vez!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

agora minha duvida é sobre dom:

eu tenho o seguinte codigo:

var cont = 0;function adicionar() {	cont++;	var e	= document.getElementById('ContUSUARIO');	var no	= document.createElement('TR');	var no2	= document.createElement('TD')	var t	= document.createTextNode('<select name="produtos" id="produtos">				<option value="-1">Selecione o Serviço</option>					<?php						while ($ret = mysql_fetch_array($sql)){						echo "<option value='".$ret['ID']."' onclick=\"buscaPreco('".$ret['Valor']."')\">".$ret['Produto']."</option>";						}					?>			</select>');	e.appendChild(no);	no.appendChild(no2);	no2.appendChild(t);}

eu sei ta bem porco, mas eu num consigo pensar de outro jeito a num ser assim, mas desse modo a busca php naum funfa!!

 

algeum poderia me dar uma dica!!

 

agradeco!!

 

flw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte crie o elemento <select> com o createElement e adicione os options com DOM, exemplo de como fazer :

 

var x=document.createElement('select');  var y=document.createElement('option');  y.text='Kiwi';  y.value=1;  try	{	x.add(y,null); // FF, Opera, etc.	}  catch(ex)	{	x.add(y); // IE	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte crie o elemento <select> com o createElement e adicione os options com DOM, exemplo de como fazer :

var x=document.createElement('select');  var y=document.createElement('option');  y.text='Kiwi';  y.value=1;  try	{	x.add(y,null); // FF, Opera, etc.	}  catch(ex)	{	x.add(y); // IE	}
certo, mas o unico problema é a busca php, pois cada select desse faz uma busca no bd para trazer alguns dados!!!!entaum de qualquer heito eu preciso fazer a busca!!! mas por meio do dom num da!!scontinuo na duvida!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
var cont = 0;function addOption(x,y){	try	{		x.add(y,null); // FF, Opera, etc.	}	catch(ex)	{		x.add(y); // IE	}}function adicionar() {	cont++;	var e	= document.getElementById('ContUSUARIO');	var row	= document.createElement('tr');	var cel	= document.createElement('td');	var select = document.createElement('select');	select.setAttribute("name","produtos");	select.setAttribute("id","produtos");	var option = document.createElement('option');	option.value = "-1";	option.text = "Selecione o Serviço";	addOption(select,option);	<?php		while ($ret = mysql_fetch_array($sql))		{			echo "option = document.createElement('option');".				 "option.value = '".$ret['ID']."';".				 "option.text = '".$ret['Produto']."';".				 "option.onclick=\"buscaPreco('".$ret['Valor']."')\";".				 "addOption(select,option);";		}	?>	e.appendChild(row);	row.appendChild(cel);	cel.appendChild(select);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

var cont = 0;function addOption(x,y){	try	{		x.add(y,null); // FF, Opera, etc.	}	catch(ex)	{		x.add(y); // IE	}}function adicionar() {	cont++;	var e	= document.getElementById('ContUSUARIO');	var row	= document.createElement('tr');	var cel	= document.createElement('td');	var select = document.createElement('select');	select.setAttribute("name","produtos");	select.setAttribute("id","produtos");	var option = document.createElement('option');	option.value = "-1";	option.text = "Selecione o Serviço";	addOption(select,option);	<?php		while ($ret = mysql_fetch_array($sql))		{			echo "option = document.createElement('option');".				 "option.value = '".$ret['ID']."';".				 "option.text = '".$ret['Produto']."';".				 "option.onclick=\"buscaPreco('".$ret['Valor']."')\";".				 "addOption(select,option);";		}	?>	e.appendChild(row);	row.appendChild(cel);	cel.appendChild(select);}
valeu, mas ainda continua dando errado, pois ao inves de aparecer o proprio select, aparece escrito assim: <select name="produtos1" id="produtos1">mas ja é um comeco, vou tentando, o unico problema que eu to percebendo, é fazer a busca php dentro da funcao java script!!!se algeum souber, por dfavor poste ai!!vlw!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não teste, mas tenta agora:

 

setEvent = function(o,e,f){	if(input.addEventListener)		o.addEventListener(e, f, true)	if(input.attachEvent)		o.attachEvent("on"+e, f)};Select = function(id){	var select = document.createElement('select');	select.setAttribute("name",id);	select.setAttribute("id",id);	return select;}Option = function(v,t,f){	var option = document.createElement('option');	option.value = v;	option.text = t;	setEvent(option,"click",f);	return option;};setOption = function(s,o){	try	{		s.add(o,null); // FF, Opera, etc.	}	catch(ex)	{		s.add(o); // IE	}		return s;}Adicionar = function(idSelect) {	var e	= document.getElementById('ContUSUARIO');	var row	= document.createElement('tr');	var cel	= document.createElement('td');	var select = new Select(idSelect);	this.addOption = function(v,t,f)	{		var option = new Option(v,t,f)		select = setOption(select,option)	};		this.insere = function()	{		e.appendChild(row);		row.appendChild(cel);		cel.appendChild(select);	}}<script type="text/javascript">var add = new Adicionar("produtos");<?php		while ($ret = mysql_fetch_array($sql))		{			echo "add.addOption('".$ret['ID']."','".$ret['Produto']."',buscaPreco('".$ret['Valor']."'));";		}?>add.insere();</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, eu tive uma outra ideia, que tal ele clicar em um link, ai esse link executa uma funcao que imprime na tela o que ele quis?

leagl neh?? mas olha ai meu codigo:

 

var cont = 0;function add() {	cont++;		var c1 = document.regPedido.produtos.selectedIndex;	var c2 = document.refPedido.quantidade.value;	var c3 = document.getElementById('prcUnit').innerHTML;	var c4 = document.getElementById('prcTotal').innerHTML;	var c5 = document.regPedido.locEntrega.selectedIndex;		var e	= document.getElementById('ContUSUARIO');	var tr	= document.createElement('TR');	var td1	= document.createElement('TD');	var td2	= document.createElement('TD');	var td3	= document.createElement('TD');	var td4	= document.createElement('TD');	var td5	= document.createElement('TD');		td1.setAttribute("id","td1"+cont);	td2.setAttribute("id","td2"+cont);	td3.setAttribute("id","td3"+cont);	td4.setAttribute("id","td4"+cont);	td5.setAttribute("id","td5"+cont);		var t1	= document.createTextNode(c1);	var t2	= document.createTextNode(c2);	var t3	= document.createTextNode(c3);	var t4	= document.createTextNode(c4);	var t5	= document.createTextNode(c5);		e.appendChild(tr);	tr.appendChild(td1);	tr.appendChild(td2);	tr.appendChild(td3);	tr.appendChild(td4);	tr.appendChild(td5);		td1.appendChild(t1);	td2.appendChild(t2);	td3.appendChild(t3);	td4.appendChild(t4);	td5.appendChild(t5);}

agora, quando eu clico em adicionar da erro, olha ai o cidigo da minha pagina:

 

<?phpinclude("estrutura/top.php");$id = $_REQUEST['id'];require_once("../arquitetura/bd.class.php");$bd = new bd;$sql = "SELECT * FROM produto ORDER BY ID LIMIT 1,14";$sql = $bd->Exe($sql);$sql2 = "SELECT * FROM enderecos WHERE ID_cad = '$id'";$sql2 = $bd->Exe($sql2);?><form name="regPedido" id="regPedido"><table cellspacing="3" id="ContUSUARIO" style="display: block;">  <tr>	<th>Produto/Serviço</th>	<th>Quantidade</th>	<th>prc Unitário</th>	<th>prc Total</th>	<th>Local de Entrega</th>  </tr>  <tr>	<td>		<select name="produtos" id="produtos">			<option value="-1">Selecione o Serviço</option>			<?php				while ($ret = mysql_fetch_array($sql)){					echo "<option value='".$ret['ID']."' onclick=\"buscaPreco('".$ret['Valor']."')\">".$ret['Produto']."</option>";									}			?>		</select>	</td>	<td><input type="text" name="quantidade" id="quantidade" size="7" maxlength="5" onkeyup="valorTotal();"/></td>	<td id="prcUnit" align="center"></td>	<td id="prcTotal" align="center"><input type="hidden" name="prc" id="prc" /></td>	<td>		<select id="locEntrega" name="locEntrega">			<option value="-1">Selecione o Endereço de Entrega</option>			<?php				while ($r = mysql_fetch_array($sql2)){					echo "<option value='".$r['ID']."'>".$r['End_comp']." nº.:".$r['Numero']." - ".$r['Cidade']." - ".$r['Estado']."</otion>";				}			?>		</select>	</td>  </tr>  <tr>	  <td><a href="#" onclick="add();">adicionar</a></td>  </tr>  </table></form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

lefestaf,Eu não tenho como testar a sua página por causa do php e do mysql que você usa, faz o seguinte, crie um exemplo somente em html, inserindo você mesmo os dados só para teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lefestaf,Eu não tenho como testar a sua página por causa do php e do mysql que você usa, faz o seguinte, crie um exemplo somente em html, inserindo você mesmo os dados só para teste.

ñ eskenta naum, eu ja acjei um modo de fazer, ultilizando API DOM!!mas agora da um outro probleminha!!quando eu crio a proxima linha ela vem totalmente fora da tabela, quem quiser conferir: iTelecom, é só clicar em entrar, sem digitar nada, e depois em registrar pedido(ai pode preencher se kiser essa parte colocando a quantidade e selecionando um produto), feito isso clicque em adicionar, ai você vera que a nova linha da tabela esta fora do padrão, pelomenos pra mim!!!ah, e se alguem kiser o codigo do dom pra criar as novas tabelas, é só me fala que eu psto, vou colocar uns comentarios pra ficar mais facil!!! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.