1

ティーンエイジャー向けのワークショップを開催する組織のフォームを作成しています。片親または両親をワークショップに連れて行くオプションがあります。各保護者には、「あなたもワークショップに参加しますか?」という質問に答えるドロップボックスがあります。親のどちらかが参加するか、両方が参加するか、または参加しないかによって、ユーザーは送信後に別の URL にリダイレクトされます (送信は常に同じ場所にあります)。フォームは Joomla の chronoforms で構築されています。

これはドロップダウンのコードです。値「Ja」または「Nee」は変更できないことに注意してください。この値はデータベースにも送信され、変更が許可されていないためです。ドロップダウンのコード:

    <select class="cf_inputbox validate-selection required" id="select_17" size="1" title="verplicht veld" name="oudersessieouder1" style="width: 193px;">
    <option value="">Make your choice</option>
<option value="Ja">Yes, will participate</option>
<option value="Nee">No, will not participate</option>
    </select><label class="cf_label" style="width: 150px;"> Will this parent join the workshop?</label>

<select class="cf_inputbox validate-selection required" id="select_18" size="1" title="verplicht veld" name="oudersessieouder2" style="width: 193px;">
    <option value="">Make your choice</option>
<option value="Ja">Yes, will participate</option>
<option value="Nee">No, will not participate</option>
    </select><label class="cf_label" style="width: 150px;"> Will this parent join the workshop?</label>

そして、これは送信時のコードです:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>bedankt</title>
</head>

<body>
<script>

if (one parent comes, so one of the 2 dropdown values will be "Ja")
window.location.replace("http://www.website.be/inschrijven-pe-jongeren-1-parent.html")
else if (both parents come, so both dropdown values will be "Ja")
window.location.replace("http://www.website.be/inschrijven-pe-jongeren-both-parents.html")
else
window.location="http://www.website.be/inschrijven-pe-jongeren.html"
</script>
<p align="center">&nbsp;</p>
</body>
</html>

ここでも、on sumbit コードのロジックが必要です。片方の親が参加する場合はその URL に移動し、両方の親が参加する場合はその URL に移動し、親が参加しない場合はその URL に移動します。

誰かがこれで私を助けることができれば、それは大歓迎です!

4

2 に答える 2

1

フォームの送信時コードがどこにあるのかわかりません。JavaScript を使用してリダイレクトを行う場合、ChronoForms は送信されたデータを表示せず、結果を処理することはできません。

ChronoForms でデータを処理する場合は、On Submit イベントのカスタム コード アクションで次のようなコードを使用します。

<?php
if ( $form->data['oudersessieouder1'] == 'ja' && $form->data['oudersessieouder2'] == 'ja' ) {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren-both-parents.html';
} elseif ( $form->data['oudersessieouder1'] == 'ja' || $form->data['oudersessieouder2'] == 'ja' ) {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren-1-parent.html';
} else {
  $form->data['redirect_url'] = JUri::root().'inschrijven-pe-jongeren.html';
}
?>

その後、Redirect User アクションで redirect_url を使用できます。

注: この前にサーバー側検証を使用して、両方の値が設定されていることを確認する必要があります。

ブラウザーから直接 JavaScript でこれを行う場合は、上記のコードを関数に配置し、選択ドロップダウンの OnChange イベントからその関数を実行する必要があります。現時点では、選択が行われたときではなく、ページがロードされたときにのみ実行されます。

于 2015-02-20T10:22:58.867 に答える