Ir para conteúdo
Fórum Script Brasil
  • 0

UploadRequest.Item(...)


marvi

Pergunta

Olá pessoal,

Eu tenho um combo em uma página, onde a pessoa vai preenchendo e vai complementando o próximo combo, mas se a pessoa não selecionar todos os combos ao inserir o arquivo no banco com esses combos pela metade da o seguinte erro:

Objeto necessário: 'UploadRequest.Item(...)'

/afeirita/painel/produtos/inserir_produto.asp, line 24

Linha: subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")

Como faço para que os combos que estiverem vazios não interfira na minha página que irá gerar o insert?

Já use On Error Resume Next mas com ele acho que não deixa os outros dados inserirem no banco corretamente... Avisa que inseriu mas está vazio...Alguém tem alguma dica para isso?

obrigado!

Marcelo

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Oi Marcelo, bom dia.

Não necessariamente esse erro seja pelo fato do campo estar vazio ou não, podem ser outras coisas tb! em principio se um campo esta vazio simplesmente nada é incluso no BD... mas deve ser alguma outra coisinha...

Sugiro que você poste o codigo do form e depois o codigo do upload para que possamos dar uma olhada no todo e te ajudar melhor...

tem ainda uma gambiarrinha, do tipo:

if subcategoria3 = "" then
resposne.write "campo vazio"
else 
insert into...
end if

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Veja o codigo:

Default.asp:

<!--#include file="conexao_dados.asp"-->
<script src="funcoes.js" type="text/javascript"></script>

<% 
call abre_conexao

sql = "select * from categorias where id_categoriapai is null order by nome"
set tab = conexao.execute(sql)

%>
<select name="categoria" id="categoria" onchange="RetornoAjax(this.value, 'subcategoria.asp', 'subcategoria')">
<option value="">-Selecione-</option>
<% while not tab.eof %>
<option value="<%= tab("id_categoria")%>"><%= tab("nome")%></option>
<% tab.movenext
     wend
%>
</select>

<div name="subcategoria" id="subcategoria"></div>


<div name="subcategoria1" id="subcategoria1"></div>

<div name="subcategoria2" id="subcategoria2"></div>

<div name="subcategoria3" id="subcategoria3"></div>

<div name="subcategoria4" id="subcategoria4"></div>


<%
conexao.close
set tab = nothing
%>
subcategoria.asp:
<%
Response.Charset = "ISO-8859-1"
call abre_conexao
id = request.querystring("id")


sql = "select * from categorias where id_categoriapai ='"& id &"'"
set tab = conexao.execute(sql)
%>


<%if tab.eof then%>
<select name="subcategoria" id="subcategoria">
<option value="0001">-Não há mais subcategorias-</option>
<%else%>
<select name="subcategoria" id="subcategoria" onchange="RetornoAjax(this.value, 'subcategoria1.asp', 'subcategoria1')">
<option value="0001">-Selecione-</option>
<% while not tab.eof %>
<option value="<%=tab("id_categoria")%>"><%=tab("nome")%></option>
<% tab.movenext
     wend
    conexao.close
    set tab = nothing
%>
</select>
<%end if%>
Função JS:
function RetornoAjax(id, url, container)
{
    if (id == "")
    {
        document.getElementById("subcategoria").innerHTML = "<select></select>";
        document.getElementById("subcategoria1").innerHTML = "<select></select>";
        document.getElementById("subcategoria2").innerHTML = "<select></select>";
        document.getElementById("subcategoria3").innerHTML = "<select></select>";
        document.getElementById("subcategoria4").innerHTML = "<select></select>";
        return
    }

var xmlHttp=GetXmlHttpObject()

if (xmlHttp==null)
{
     alert ("Este browser não suporta HTTP Request")
     return
}

var url=url;
url=url+"?id="+id;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=function()
{
     if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
     {
document.getElementById(container).innerHTML=xmlHttp.responseText;
     }
}
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
}

function GetXmlHttpObject()
{
var objXMLHttp=null

     if (window.XMLHttpRequest)
         objXMLHttp=new XMLHttpRequest()
     else if (window.ActiveXObject)
         objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

return objXMLHttp
}

Aí ele vai gerando o Combo de acordo com outro Combo, mas quando não tem mais combo para gerar fica lá uns combos ocultos que não receberão informações e esses ocultos e que da erro na página:

destaque = UploadRequest.Item("destaque").Item("Value")

descricao = UploadRequest.Item("descricao").Item("Value")

categoria = UploadRequest.Item("categoria").Item("Value")

subcategoria = UploadRequest.Item("subcategoria").Item("Value")

subcategoria1 = UploadRequest.Item("subcategoria1").Item("Value")

subcategoria2 = UploadRequest.Item("subcategoria2").Item("Value")

linha de erro: subcategoria3 = UploadRequest.Item("subcategoria3").Item("Value")

O que acontece é o seguinte, quando o UploadRequest.Item é criado e não existe algum campo la no formulário que corresponda com o UploadRequest.Item então ele da esse erro.

Se você cria ola=UploadRequest.Item("ola").Item("Value") e não existe esse campo Ola no form, ele da esse erro.

No meu caso eu estou com um combox dinâmico que pode gerar até 5 combox... Mas tem informações do banco que gera até 2 ou 3 combox deixando os outros combos: 4 e 5 fora do formulario ou tipo inexistente, então esses 4 e 5 da erro la no ("subcategoria4 ou 5").Item("Value")) , entende?

Obrigado!

Marcelo

Editado por marvi
Link para o comentário
Compartilhar em outros sites

  • 0

bom então crie um campo do tipo hidden que contera os campos seleionados...

a cada adição de campo adicione nessse imput o campo...

o valor dele ficaria algo como= campo1,campo2,campo3

use um split

campos=split(UploadRequest.Item("campos").Item("Value"),",")

ai so usar pela order

va1=campos(0)

va2=campos(1)

e assim por diante

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...