マトリックスのドロップダウンを使用したフロントエンドフォーム – 新規追加

Emergency
Contacts(ハンドル:emergencyContact)と呼ばれるMatrixフィールドがあり、ユーザーがフロントエンドで追加/更新できるように設定しています。それは1つのブロックタイプを持っています
– 連絡先 – 4つのフィールド:

  • 名前(プレーンテキスト – ハンドル:contactName)
  • 関係(ドロップダウン – ハンドル:contactRelationship)
  • 電話機(入力マスク – ハンドル:contactPhone)
  • 電子メール(プレーンテキスト – ハンドル:contactEmail)

私は、既存の情報を表示するとすべてが正しく表示されます。しかし、新しい緊急連絡先に入るときには、ドロップダウンメニューを入力して選択するためのオプションを設定するための正しい構文を理解することができません。

以下は私のコードです。私はいくつかの異なることを試しましたが、そのほとんどが私にエラーを与えました。これは私の最新の試みです。

<input type="hidden" name="fields[emergencyContact][new1][type]" value="contact">
<input type="hidden" name="fields[emergencyContact][new1][enabled]" value="1">
<div class="grid-x grid-padding-x">
    
<input type="text"
name="fields[emergencyContact][new1][fields][contactName]">
 
    
 
    
<input type="text"
name="fields[emergencyContact][new1][fields][contactPhone]">
 
    
<input type="email"
name="fields[emergencyContact][new1][fields][contactEmail]">
 
</div>

誰でも私がこの解決を手助けすることができますか?

ベストアンサー

あなたのコードには2つのエラーがあります: 1.が見つかりませんでした。
あなたがオプションを取り出す方法は間違っていた。

ここに正しいコードがあります:

<input type="hidden" name="fields[emergencyContact]" value="">
<input type="hidden" name="fields[emergencyContact][new1][type]" value="contact">
<input type="hidden" name="fields[emergencyContact][new1][enabled]" value="1">
<div class="grid-x grid-padding-x">
    
<input type="text"
name="fields[emergencyContact][new1][fields][contactName]">
 
    
{% set matrixField =
craft.fields.getFieldByHandle('emergencyContact') %} {% set
blockTypes = matrixField.getFieldType.getSettings.getBlockTypes %}
{% for blockType in blockTypes %} {% if blockType.handle ==
"contact" %} {% for field in blockType.getFields() %} {% if
field.handle == "contactRelationship" %} {% endif %} {% endfor %} {% endif %} {% endfor
%}
 
    
<input type="text"
name="fields[emergencyContact][new1][fields][contactPhone]">
 
    
<input type="email"
name="fields[emergencyContact][new1][fields][contactEmail]">
 

I hope it helps you.

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です