ユーザーがWebフォームに入力したときにメールを送信したいのですが、それがレビューフォームであり、ユーザーが7より高いフィードバックを提供した場合のみです。
そこで、私たちはどれだけ良いかを尋ねています。ユーザーが1〜10の値を指定すると、その数値が7より大きい場合にメールを送信します。
基本的に、RulesモジュールとWebform_rulesモジュールをインストールしました。これで、アクションを含むルールを作成できます:「フォームが送信された後」
次に、nidを特定のWebフォームのnidと同じにしました。次に、2番目の条件を作成して、入力した値を7、8、9、または10と比較するため、データ比較条件を作成します。条件が 'data'で、フィールド名が 'data:grade-value-raw'の場合、grade-value-rawがないことを通知するだけです
ページに[data:grade-value-raw]を表示するようにリアクションを設定すると、機能します。
ルール条件で使用できないのはなぜですか?
あなたが仕事をしようとしているものへの「手がかり」は、すべてにアクセスできることですlabelsおよびWebフォームの任意のフィールドのすべてのvalues、すなわち:
[data:MachineFieldName-title]
には、マシン名MachineFieldNameを持つフィールドのLabelが含まれています。[data:MachineFieldName-value]
には、マシン名MachineFieldNameを持つフィールドのValueが含まれていますしたがって、あなたの場合、[data:grade-value]
のようなものを使用して機能させることができるはずです。
これと、これに関するプロトタイプルールの詳細については、「 ルールを使用してWebフォームからノードを作成する方法 」への回答を参照してください。
上記は良いスタートですが、目標を達成するには十分ではありません(=検証 "...記入された値を比較するための2番目の条件は7、8、9、または10なので、私はあなたの質問のように、データ比較条件を作成します ")。ただし、 my answer から " Rulesモジュールを使用する場合に、送信されたWebフォームデータとデータ比較を行う方法は? "で説明されているものと同様の手法を使用できます。略して:
Add a variable
に[data:grade-value-raw]
と等しい値が割り当てられた(そしてデータ型がおそらくinteger)です。この回答では Conditional Rules モジュールを使用していますが、Rulesアクションを実行してルールコンポーネント(適切なルール条件を追加する)を実行することもできるため、これは必要ありません。追加モジュール。詳細については、「 条件付きルールモジュールを使用する代わりの方法は何ですか? 」の回答を参照してください。
PS:この質問はD7に関するものだと思います。
これはあなたの質問に直接答えるものではありませんが、代替ソリューションです。選択ボックスでの評価を前提として、これをルールなしで、Webフォームだけで行うことができます。
Webフォームを編集するときの電子メールセクションでは、電子メールアドレスを入力する代わりに、「コンポーネント値」を選択できます。選択ボックスを選択し、値7、8、9、10のメールアドレスを入力します。
これらの値が選択された場合にのみメールを送信する必要があります
(条件付き状態自体ではなく)条件付きルールを使用して、ルールに条件を追加します。多くの場合、ルールの条件付き状態が常にフォームのデータにアクセスできるわけではないことを発見しました(エンティティは同じ取引を形成します)。
If [フィールド名]が条件よりも大きい場合、それが機能するはずです。