Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Heinen

Como fazer POST sem submit

Recommended Posts

É o seguinte pessoal,

 

Tenho uma tela com várias imagens de produtos e quando eu clicar em um produto quero que seja redirecionado para a tela de detalhe de produtos com o Nome e a Descrição do produto.

 

Observação:

 

Não estou utilizando banco de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Querystrings!

 

Passe um parâmetro GET, normalmente o ID do produto, no link do produto e na página receptora verifique se esse valor existe, se válido e etc. e, então, busque as informações do produto daquele ID.

 

Mas, para justificar a resposta nesse tópico, já que quer fazer via POST, não sei por qual motivo, afinal formulários não servem para isso, existem duas opções. Para ambas você criaria N forms e: Cada um deles com action apontando para URL da querystring, como se fosse um link -OU- todos apontando pro mesmo endereço mas, cada form com um campo hidden diferente, sendo que cada um conteria como valor o ID do produto.

 

Caso, porém, seja uma exigência de cliente (se houver um envolvido), você pode mascarar o conceito via links com CSS, para que eles se pareçam com botões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe pelo meu amadorismo!

 

Eu não quero passar por GET porque vou ter uma descrição grande do meu produto e acabar deixando "feia" a url.

 

Eu penso em fazer algo como:

 

Ao clicar na imagem, a mesma chamará uma função javascript que enviará os meus dados como submit de um form em POST.

 

Será que da certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

aí dá na mesma que enviar por post.. estaria apenas criando uma gambiarra desnecessária.

 

talvez uma alternativa "mais elegante" seria gravar esses dados num cookie ou session.. assim poderá resgatar na outra página sem precisar usar o método POST

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um adendo a minha resposta anterior seria a premissa de você ter um banco de dados. Pela sua resposta me pareceu não ser o caso, já que pretende trafegar todos esses dados via URL...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não me preocuparia com URL uma vez que o usuário nem olha pra isso. Mas repense sobre trabalhar com banco de dados. Não há aplicações hoje que não use bancos. É, digamos que obrigatório.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use ajax! Vai um exemplo do que eu uso em um sistema que desenvolvi.

 

function inserir_cadastro(){
var cadastro = $("#cadastro").val();
if(($.trim(cadastro).length > 0)){
	$.post('user/incluir_cadastro', {
                cadastro: cadastro
            },
            function (data) {
              $("#dialog-alert").find('p').html(data);
			  $("#dialog-alert").dialog('open');(data);
			  getDataFromPages("user/listar_cadastro");
    });
} else {
	alert("Preencha o campo em branco.");
	}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não me preocuparia com URL uma vez que o usuário nem olha pra isso. Mas repense sobre trabalhar com banco de dados. Não há aplicações hoje que não use bancos. É, digamos que obrigatório.

 

É aí que você se engana. Inclusive, desse jeito (passando por GET) qualquer pessoa pode manipular a informação trafegada de uma página pra outra.

 

Bem inseguro, e tem um limite de caracteres na URL também.

 

Acho que você pode usar CURL para passar as infos via post sem a necessidade de submit, mas, vem uma questão mais simples...

 

Não é mais facil você passar no href do link do produto um ID, e na página que vai, fazer a consulta e trazer a informação do produto, como todo mundo faz? :assobiando:

Compartilhar este post


Link para o post
Compartilhar em outros sites

#8.. vc caiu de para-quedas no topico.. rsrs

 

leia direito.. incluindo as respostas tb...

 

Falha nostra!

Sem BD, sem consulta.

 

Só me resta AJAX na cabeça, neste caso. hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bons, os dados tem de estar armazenados em algum lugar, nem que num arquivo de textos. Outra possibilidade seria trazer todos os detalhes junto com o path da imagem mas mantê-los ocultos no HTML e, com JavaScript, mandá-los para um modal ao clicar num botão ou link disfarçado de botão.

 

E nessa abordagem, dispensam-se N forms, hidden fields, querystrings qualquer outra forma de ligação pois o próprio JavaScript navegaria entre os nós anteriores ou posteriores à imagem clicada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei se é ou não gambiarra! :D

 

Mas eu consegui fazer desse jeito:

 

Quando eu clico na imagem, passo um parâmetro id que la na página de detalheDoProduto carrego um arquivo XML com as informações do produto.

 

Exemplo:

 

<prod name="1">
        <url></url>
        <nome></nome>
        <desc></desc>
</prod>

 

Eu fiz dessa forma porque eu não queria utilizar banco de dados, já que a aplicação é bem estática em relação aos produtos.

Serão alterado os produtos de 4 em 4 meses aproximadamente.

Então nesse arquivo eu já informo os detalhes de cada produto.

 

Oque acham dessa ideia? Gambiarra nível máximo? :)

 

Valeu, Pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótima solução, mas atente para três coisas. Duas são certas e uma frescura minha :grin:

  • Todo documento XML deve conter o prólogo XML:
    <?xml version="1.0" encoding="UTF-8"?>
  • De acordo coma a especificação XML, deve sempre haver aquilo chamado root node, ou seja, um nó que agrupe um conjunto de entidades:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <products>
    
        <product id="1">
            <url></url>
            <name></name>
            <description></description>
        </product>
    
        <product id="2">
            <url></url>
            <name></nome>
            <description></description>
        </product>
    
    </products>
    
    
    Caso existam outras informações no mesmo XML que não pertença à entidade product, deve haver outro nó englobando products
  • Agora, a frescurinha.

    Com todas as exigências que o XML implica, convém nomear entidades e atributos da forma mais descritiva possível, evitando-se abreviações e nomeando cada item da forma mais lógica possível. Veja como o XML acima ficou diferente do seu.

    O ponto principal de eu ter levantado essa lebre é quando ao uso de um atributo denominado name para representar um ID.

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.