2010-09-26 14 views
15

Nel mio codice per un mini negozio di libri on-line ho una seguente riga ripetere 5 volte con valore diverso per 'nome' del parametroCome posso passare un parametro tramite il pulsante di invio?

<input name="JSP-2" type="submit" value="Buy"> 

Facendo clic sul pulsante Acquista, l'applicazione reindirizza a un file in cui buy.jsp ottiene il valore del nome e visualizza i dettagli corrispondenti del libro.

Nel mio buy.jsp, ho incluso

<% String bname= request.getParameter("name"); 
out.print(bname); 
%> 

Ma il nome non ottiene assegnato ad bname e si vede il valore nullo. Come posso passare un parametro dall'input del tipo di invio? Per favore aiuto.

risposta

16

Devi passare il parametro nella richiesta. Dato che hai un modulo e invii il modulo, puoi avere un campo nascosto nel modulo chiamato, ad esempio "submitType", e popolarlo ogni volta che fai clic sul pulsante, utilizzando javascript. Quindi questo sarà disponibile nella prossima richiesta.

Da qualche parte dentro la forma:
<input type="hidden" name="submitType">

nei pulsanti di conferma:
<input name="JSP-2" type="submit" onclick="setType('Buy')">

Javascript: formName è il nome del modulo

<script> 
    function setType(type) 
    { 
     //formName is the name of your form, submitType is the name of the submit button. 
     document.forms["formName"].elements["submitType"].value = type; 

     //Alternately, you can access the button by its Id 
     document.getElementById("submitId").value = type; 
    } 
</script> 
+0

funziona quando ho cambiatelo un po 'come document.forms [formName] .submitType.val ue = tipo –

+0

@AlanDuan Sì. E questo è il modo migliore per accedere agli elementi. Aggiornato la mia risposta per riflettere questo. – Nivas

Problemi correlati