Pergunta

Eu sou relativamente novo para programação de aplicações web, então eu espero esta pergunta não é muito básico para todos.

Eu criei uma página HTML com um formulário contendo um datagrid dojox (v1.2) preenchido com fileiras de descrições para diferentes itens de mercearia. Depois que o usuário seleciona o item que ele está interessado, ele vai clicar no botão "Enviar".

Neste ponto, eu posso começar a função javascript para armazenar o número do item ID como uma variável JavaScript, mas eu não sei como passar esse ID na página HTML posterior.

devo apenas passar o ID como um parâmetro de seqüência de consulta URL? Existem outras maneiras melhores?

EDIT: O processo global é como um carrinho de compras. O usuário irá selecionar o item da grade e, em seguida, na próxima página o usuário irá preencher alguns detalhes e, em seguida, check-out.

Gostaria também de mencionar que eu estou usando grails assim que esta está acontecendo em uma página GSP mas atualmente contém apenas HTML.

Foi útil?

Solução

Você pode usar apenas um campo de entrada oculto; que é transmitido como parte do formulário.

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      function updateSelectedItemId() {
        document.myForm.selectedItemId.value = 2;
        alert(document.myForm.selectedItemId.value);

       // For you this would place the selected item id in the hidden
       // field in stead of 2, and submit the form in stead of alert
      }
    </script>

    Your grid comes here; it need not be in the form

    <form name="myForm">
      <input type="hidden" name="selectedItemId" value="XXX">
      The submit button must be in the form.
      <input type="button" value="changeSelectedItem" onClick="updateSelectedItemId()">
    </form>
  </body>
</html>

Outras dicas

É bom, mas melhor é usar alguma linguagem de script como JSP, PHP, ASP .... e você pode usar simples GET e POST métodos.

O melhor método (IMHO) é incluí-lo na URL

href = "http:? //NewPage.htm var = valor";

encodeURIComponent um valor de string

Uma maneira de enviar mais variáveis ??usando POST para outra página é fazer com que o link para a página subseqüente um envio de entrada em um formulário onde o atributo de ação é a sua página de destino. Para cada variável que você tem, você pode incluir o uso de entradas de tipo de atributo "oculto" neste formulário, fazendo apenas o botão visível.

Outra opção é gerar dinamicamente links na página com algo como PHP, onde você basicamente repovoar as consultas GET atuais.

Finalmente, você sempre pode armazenar essas informações na matriz PHP $ _SESSION e não precisa se preocupar em passar continuamente estas variáveis ??através de navegação do site.

Sua escolha vai depender de quantas opções de navegação existem onde você gostaria de manter as mesmas variáveis. Ele também irá depender de quão seguro você gostaria que o seu back-end para ser e a quantidade que você gostaria de divulgar para o usuário web avançada.

Se você está indo só para precisar o ID nas páginas seguintes, em seguida, você pode passar o id como um parâmetro de string de consulta.

Mas haverá momentos em que você precisa para transmitir mais informações e passando uma variedade de parâmetros para diferentes páginas e ter que manter diferentes conjuntos de parâmetros para diferentes páginas podem ficar um pouco peludo. Quando este for o caso, eu sugiro que você mantenha um campo oculto no formulário e criar um objeto argumento de que lojas de cada um dos seus parâmetros. Serializar o objeto de discussão com JSON e armazenar esta em você campo oculto. Postar o formulário de volta para o servidor. Quando a próxima página carregar, desserializar o objeto e recuperar os valores que você precisa.

Assumindo que você está limitado a usar páginas html, eu acho que a melhor abordagem seria a de passar o id junto na cadeia de consulta para a próxima página. É relativamente fácil para puxar esse valor de volta para fora da string de consulta na página seguinte. Se você precisa ser um pouco mais furtivo sobre passando a variável (ou você precisa a variável persistir por mais de uma página), você também pode definir um cookie e recuperá-lo na próxima página.

Uma vez que você está tentando fazer isso em um aplicativo Grails você tem a opção de utilizar âmbito do Flash. Isso pode não fazer qualquer sentido se você quiser ir diretamente de uma página HTML para o próximo como o escopo será definido em um controlador. Se você não precisa fazer qualquer tipo de processamento entre os pedidos, eu sugiro usar um campo de formulário oculto para mantê-lo simples.

http://grails.org/Controllers+-+Controller+Scopes

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top