チャンネル形式:プライマリ・カテゴリーの値に基づいて隠しフィールドから選択したカテゴリを明示的に削除する方法

これは私が認めている奇妙な状況です。

I'm using Channel Forms to make all entries on my site created & editable via the front-end.

私は場所のカテゴリグループを持っています。

プライマリカテゴリを使用して、ユーザーがプライマリロケーションを指定できるようにします。一部の有料プレミアムエントリは、追加のカテゴリ(場所)に割り当てることもできます。

CPでは、カテゴリをプライマリカテゴリとして指定すると、以前に選択されていなくても自動的にそのカテゴリが選択されます。このバーハビールは、チャンネル形式に引き継がれません。フロントエンドフォームからプライマリカテゴリを選択した場合、そのカテゴリは実際には選択されません。プライマリカテゴリIDを隠しカテゴリ[]フィールドにコピーして、カテゴリが選択されていることを確認するために、フォーム送信時にjavascriptを使用します。これは、新しいエントリ作成時にうまく動作します。

チャンネルフォームを介した入力編集で問題が発生します。

今、Primary Cateogryを編集する場合、同じJavaScriptを使用して、そのCat IDを隠しフィールドの値として割り当てることができます。ただし、元のPrimary Categoryの選択を解除するにはどうすればよいですか?プライマリカテゴリが変更されたときに古いカテゴリの選択を解除すると、プライマリカテゴリを編集し続ける場合、作成者は多くの場所にエントリを追加できます。

つまり、本質的には、次のような値を持つ隠しフォームフィールドが必要です。

<input type="hidden" name="category[]" value="not {some-cat-id}" />

新しいフォームが選択されたときに、元のカテゴリを選択解除するために、チャンネルフォーム(編集入力)を使用する別の創造的な解決策。

0
カテゴリフィールドには複数のオプションがあり、配列名= "catagory []"と定義されています。つまり、新しい値を追加すると他の既存の値は削除されません。現在、primary_categoryフィールドの選択ボックスを使用していますが、これは単独では機能しますが、カテゴリ[]フィールドには接続されていません。私がする必要があるのは、カテゴリ[]フィールドに接続して、新しいカテゴリが選択されたときに「古い」主カテゴリを削除することです。これは、複数の選択ボックスとJSで動作するかもしれませんが、私の場合は、追加のカテゴリ選択のためにチェックボックスを使用する必要があります。
追加された 著者 David A Gibson,
私はその後、その作者によって削除された回答のヒントに基づいて私のために働く解決策を見つけました。もし誰かがこれに答えるために刺すことを望むなら、私はまだ恩恵を払いのけます!
追加された 著者 David A Gibson,
隠されたフィールドを新しいカテゴリに設定するだけで、古いフィールドが消去されると思うでしょう。そうでない場合は、チャネルフォームの例( ellislab.com/expressionengine/user-guide/modules/channel/… )、javascriptで適切なカテゴリを選択/選択解除するだけですか?
追加された 著者 Seamus Lee,

答えはありません

0