2012-01-02 4 views
1

私は些細な作業に本当に時間がかかりました。私はWebプロジェクト(ビジネスロジックに焦点を当てる)のための本当に基本的なユーザーインターフェイスをやっています。私の質問に既に正確な答えがある場合は、私をリダイレクトしてください。すぐに削除します。私は本当に何を検索するのか分からず、基本的なフレーズはあまりにも曖昧です。フォームの値は制御を提出します

シナリオ:???私は要求を取得する必要が

のいずれか/ someurlrequest編集=(idOfelement)または/ someurlrequest =(idOfElement)を移入して、私は/ someurlrequest編集=(idOfelement)&移入を取得= (idOfElement)(GETは送信されたものを表示するためのもので、POSTが優先されます)

要素のセットが表示されるたびに、私は2つのボタンが必要ですが、フォームの送信アクションのグラブリクエストの両方の値(EditとPopulate)は、名前/値のペアが渡されたときにどちらのボタンが押されたかわからないので、リクエストを処理できないことを意味し、Edit = 1とPopulate = 1、Iオビouslyは、Edit = 1またはPopulate = 1のいずれかのペアのみを必要とします。

<c:forEach var="TrainingProgram" items="${programbank}"> 

    <form method="get" action="/someurlrequest"> 
     <p> ${TrainingProgram.name}</p 
     <p> ${TrainingProgram.shortDescription}</p> 

    <p>  
    <input value="Edit" type="submit" /> 
    <input name="edit" style="display: none;" value="${TrainingProgram.programId}" /> 
    <input value="Populate" type="submit" /> 
    <input name="populate" style="display: none;" value="${TrainingProgram.programId}" /> 

    </p> 
    </form> 
</c:forEach> 

私は基本的に逃げることができるようになります。

<a href="/somerequest/edit=${TrainingProgram.programId}"> Edit <a/> 
<a href="/somerequest/populate={TrainingProgram.programId}"> Populate <a/> 

が、これは私がGETに制限すると、私が述べたように、私はPOSTを希望する前に。

普通のHTMLで解決することは可能ですか(本当に些細なことはありませんか?) JSソリューションはまた歓迎ですが、私はJSをコピー・ペースト・ブラックボックス・レベルでしか理解できませんが、JSで行うことを本当に基本的な仕事でない限り、人々は私のために仕事をしてから効果的に私を非難したくありません:

フォームを送信する場合、すべての入力を基本的に

<p> ${TrainingProgram.name}</p> 
<p> ${TrainingProgram.shortDescription}</p> 
<form method="POST" action="/someurlrequest">  
<input value="Edit" type="submit" /> 
<input name="edit" type="hidden" value="${TrainingProgram.programId}" /> 
</form> 
<form method="POST" action="/someurlrequest"> 
<input value="Populate" type="submit" /> 
<input name="populate" type="hidden" value="${TrainingProgram.programId}" /> 
</form> 

詳細な説明:

答えて

2

さて、あなたは2つの異なる形式を持つことによってそれを行うことができるはずです、ありがとうございましたフォームに含まれるフォームはアクションURLに送信されます。したがって、同じフォームに2つの送信ボタンがあっても、同じ値を送信します。経験則として、フォームごとにボタンを1つだけ送信する必要があります(Javascriptでもっと精巧なロジックがある場合を除く)。

+0

ありがとうございました。私はいつもフォームをグローバルに考えると、その1つはすべての入力をカプセル化する必要があります。 – Aubergine

+0

ところで、入力に 'display:none'を使う必要がないように答えを編集しました。 –

関連する問題