Ir para conteúdo

POWERED BY:

Arquivado

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

pedrovisk

Como levar apenas o que tiver conteúdo?

Recommended Posts

Turma,

 

Tenho um formulário com 10 textbox. informo os dados apenas para os dois primeiros, envio para uma página que nela tem o FOR EACH abaixo. Grava os dados, mas deixa, no BD, a partir da terceira linha, em branco, ou seja, grava os Controles e nomes informados nas duas primeiras linhas e somente os Controles até a 10 linha.

 

Deveria apenas gravar o que tiver conteúdo. O campo Controle, é uma variável que está na mesma página e sempre terá um único valor, mas os nomes poderão ser vários até ocuparem a 10 textbox.

 

For Each Pax In Request.Form("txtPax")	SQLp = "INSERT INTO PCO_Pax (IDPContas, NomePax) VALUES ("&Controle&", '"&Pax&"')"	'Response.Write(SQL)		'Response.End	Set rs3 = abredb.Execute(SQLp)Next

Exemplo

 

linha 1 - controle - nome1

linha 2 - controle - nome2

linha 3 - controle

linha 4 - controle

linha 5 - controle

linha 6 - controle

linha 7 - controle

linha 8 - controle

linha 9 - controle

linha 10 - controle

Como eu faço para que grave apenas a textbox que tiver valor?

 

Obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

porque nao usa um IF dentro do FOR

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como? Se todos os campo possuem o mesmo nome (txtPax). Como posso pegar aquele que não tem valor?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como? Se todos os campo possuem o mesmo nome (txtPax). Como posso pegar aquele que não tem valor?

Não seria um if mais ou menos assim: if [nome da variável q você quer saber se está vazia] = "" then, aí aki você criaria a condição caso sua variável estivesse vazia...

 

Será q é isso q você quer? Bom, tentei ajudar... Me desculpe se naum for nada disso, mas é pq eu naum conheço quase nada de ASP (ou qq outra linguagem), mas dessa forma eu posso ir aprendendo tb, neh?

 

Bom, tenta a e... E naum eskece de postar a solução final qdo a encontrar, tah bom? Um abraço! Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável sempre vai conter o valor dos dois primeiros campos preenchidos, já que os campos possuem o mesmo nome. O que eu não estou entendendo é como vai ela vai distinguir o momento que não posseu mais valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável sempre vai conter o valor dos dois primeiros campos preenchidos, já que os campos possuem o mesmo nome. O que eu não estou entendendo é como vai ela vai distinguir o momento que não posseu mais valor.

Tem como postar o HTML tb? Eu num tô conseguindo "enxergar" o problema como um todo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está o HTML dos campos. Veja que o nome para eles é o mesmo:

 

<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 1: </td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 2: </td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 3:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 4:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 5:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 6:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 7:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 8:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 9:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 10:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está o HTML dos campos. Veja que o nome para eles é o mesmo:

<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 1: </td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 2: </td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 3:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 4:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 5:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 6:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 7:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 8:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 9:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>		<tr>		  <td bgcolor="#DDEEEE" class="Font_Peq_Form">Pax 10:</td>		  <td colspan="3" valign="middle" bgcolor="#DDEEEE"><input name="txtPax" type="text" class="Combo" id="txtPax" size="50" maxlength="50" onFocus="style.backgroundColor='#FFFF99'; style.color='#0000FF'" onBlur="style.backgroundColor='#FFFFFF'; style.color='#000000'"></td>		  </tr>
Camarada,Como o controle txtPax esta sendo criado varias vezes com o mesmo nome ele é criado como um array!Então para manipular seu conteúdo você dever recuperar através de indice.Veja o exemplo:
<script>		function teste(){					//Se o length de txtPax for igual a undefined o controle			// não é array			if (document.getElementById('txtPax').length == undefined)			{				alert(docuemt.getElementById('txtPax').value);			}else{				for (i=0;document.getElementById('txtPax').length; )				{					alert(docuemt.getElementById('txtPax')[i].value);				}			}		}</script>
Não testei o código então pode haver erros mas a idéia é esta.Deu uma luz.t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz com o ASP e ficou assim:

 

For Each Pax In Request.Form("txtPax")	Valor = Pax	If Valor = "" Then		Exit For	Else		SQLp = "INSERT INTO PCO_Pax (IDPContas, NomePax) VALUES ("&Controle&", '"&Pax&"')"		'Response.Write(SQL)			'Response.End		Set rs3 = abredb.Execute(SQLp)	End IfNext
Deu certo e estou postando aqui para aqueles que precisarem um dia.

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.