2016-06-29 9 views
0

私は3つのラジオボタンと1つの送信ボタンで簡単なフォームを作成しました。ユーザは、例えばラジオボタン#1を選択し、送信ボタンを押した場合TYPO3 sysextフォーム:選択したラジオボタンの値を取得

enter image description here

ラジオボタンが、その後、彼はID 40でのページにリダイレクトされなければならない値

Value of Radio Button #1: 40 
Value of Radio Button #2: 41 
Value of Radio Button #3: 42 

として整数を持っています。

ラジオボタンのどれが選択されているかを知ることができますか?私はこのGP:assistent:group1

フォーム全体構成のようにそれを試してみました:

title = test 
enctype = application/x-www-form-urlencoded 
method = post 
prefix = assistent 
confirmation = 
postProcessor { 
    1 = redirect 
    1 { 
     destination = GP:assistent:group1 
    } 
} 
10 = RADIOGROUP 
10 { 
    class = fieldset-subgroup 
    legend { 
     value = Nächste Schritte 
    } 
    name = group1 
    10 = RADIO 
    10 { 
     checked = checked 
     type = radio 
     value = 40 
     label { 
      value = Ich habe ein Problem mit X 
     } 
    } 
    20 = RADIO 
    20 { 
     type = radio 
     value = 41 
     label { 
      value = Ich habe ein Problem mit Y 
     } 
    } 
    30 = RADIO 
    30 { 
     type = radio 
     value = 42 
     label { 
      value = Ich habe ein Problem mit Z 
     } 
    } 
} 
20 = SUBMIT 
20 { 
    type = submit 
    name = 6 
    value = Weiter 
} 
+0

([1] [コード]を参照)ことは不可能であると思われるので、私は現時点ではJavaScript – Black

+3

と回避策を作成し、リダイレクトポストプロセッサのdestination属性はstdWrapの-ことができません。あなたのアイデアは素晴らしいですが、それはうまくいかないでしょう。 1つの解決策は、独自のpostProcessorを作成することです。あなたが興味があるなら、私は一見を持つことができます。さらに、いくつかの奇妙な設定が残っているので、フォームを合理化することをお勧めします。 [1]:https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/form/Classes/PostProcess/RedirectPostProcessor.php#L68 –

+0

ありがとうございます!自分のポストプロセッサーを書くことは私のプログラミング能力を上回ると思う。私はすでにjavascriptで良い回避策を作成しました。これは、選択されたラジオボタンの値を取得し、 'window.location.replace'を使ってユーザをそのラジオボタンにリダイレクトする単純なスクリプトです。 また、送信ボタンを通常のボタンに置​​き換えました。私はフォームを使用するすべてのページにこのスクリプトを含める必要があります。 – Black

答えて

-1

一つの解決策は、あなたのフォームを追加し、GPパラメータをgrepすることです。 "LOAD_REGISTER"のように

page.1=TEXT 
page.1.value (
<form method="get" action=""> 
<ul> 
<li><input type="radio" name="myid" value="20" /></li> 
<li><input type="radio" name="myid" value="30" /></li> 
</ul> 
<input type="submit" value="Dummy text"> 
</form> 
) 

[globalVar = GP:myid >0] 
page.jsInline { 
    1234 = TEXT 
    #1234.dataWrap = alert("redirect to:'Location: index.php?id={GP:nameradio}'"); 
    1234.value = window.location.assign("index.php?id={GP:myid}") 
    1234.insertData=1 
} 
#or with config.additionalHeaders 
[global] 

よろしく ピート

+1

解決方法は簡単ですが、特定の質問には答えません。 EdwardBlackはフォーム拡張を使用しています。アプローチはシンプルなHTMLです。 –

+0

これはテスト専用ですが、とにかく動作します。この場合、page.1をpage.1 = FORM {..config .. {10 = TEXTLINE ..}}に変更します。 – pete

関連する問題