お世話になります。
テンプレート変数のカスタムフォームで、以下のようにDocLister経由で、とあるフォルダにあるリソースリストのpagetitleを入れこみ、セレクトボックスにしたいと考えています。
編集画面で思惑通りリストはされるのですが、保存→再び編集画面を見てみると、先頭の「1」に戻ってしまっています。
カスタムフォームでセレクトボックスは使えないのでしょうか。
最初は、DocListerが原因かと思っていたのですが、DocListerのコードを抜いても同様でした。
<select id="tv1217" name="tv1217" size="1">
<option value="1">1</option>
<option value="2">2</option>
[[DocLister?
&tpl=`リスト`
&parents=`18`
]]
</select>
よろしくお願いいたします。
テンプレート変数のカスタムフォームでセレクトボックスを使いたい 【解決済み】
テンプレート変数のカスタムフォームでセレクトボックスを使いたい
選択状態にしたいoption要素にselected属性がないためと思います。現在のEvoではselected属性を意図どおりにセットするためには@EVALを用いてPHPでフォームを出力する必要があります。
新しい仕様を考えるとしたら、上記のような書き方も考えられます。
コード: 全て選択
<select name="[+name+]">
<option value="1" [+value:is(1):then(selected)+]>1</option>
<option value="2" [+value:is(2):then(selected)+]>2</option>
<option value="MODX" [+value:is(MODX):then(selected)+]>MODX</option>
</select>
テンプレート変数のカスタムフォームでセレクトボックスを使いたい
Yama様
ご無沙汰しております。
ありがとうございます。
なるほど。やはりひと手間かけないと無理なんですね。
2つのリスト群の間で紐づけが必要なことが、以前から多々ありまして、
どうしても出来なかったので、PHPで外部ファイルに一旦書き込んでおいて→そのファイルを随時読み込む…みたいなことをしていたのですが、どう考えてもセキュリティ的にまずいので、悩んでおりました。
こんな感じです。
★DocLister出力でリストを外部ファイルに書き込んで
※ファイルの中は
1
2
3…
★読み込み側のテンプレート変数で
dropdown list menuにしておいて
@FILE http://~~~.net/gaibufile.txt
みたいなことをしていました。
このやり方で外部ファイルをModx内で作成したとしても、「非公開」が「公開」になってしまってファイルが丸見え状態になってしまいました。
■教えていただいた方法で
Custom Formで
@EVAL return
'<select name="[+name+]">
<option value="1" [+value:is(1):then(selected)+]>1</option>
<option value="2" [+value:is(2):then(selected)+]>2</option>
<option value="MODX" [+value:is(MODX):then(selected)+]>MODX</option>
</select>';
を入れるという事でしょうか。
やってみたのですが、うまくいかなくて。。
すみません。。
ご無沙汰しております。
ありがとうございます。
なるほど。やはりひと手間かけないと無理なんですね。
2つのリスト群の間で紐づけが必要なことが、以前から多々ありまして、
どうしても出来なかったので、PHPで外部ファイルに一旦書き込んでおいて→そのファイルを随時読み込む…みたいなことをしていたのですが、どう考えてもセキュリティ的にまずいので、悩んでおりました。
こんな感じです。
★DocLister出力でリストを外部ファイルに書き込んで
※ファイルの中は
1
2
3…
★読み込み側のテンプレート変数で
dropdown list menuにしておいて
@FILE http://~~~.net/gaibufile.txt
みたいなことをしていました。
このやり方で外部ファイルをModx内で作成したとしても、「非公開」が「公開」になってしまってファイルが丸見え状態になってしまいました。
■教えていただいた方法で
Custom Formで
@EVAL return
'<select name="[+name+]">
<option value="1" [+value:is(1):then(selected)+]>1</option>
<option value="2" [+value:is(2):then(selected)+]>2</option>
<option value="MODX" [+value:is(MODX):then(selected)+]>MODX</option>
</select>';
を入れるという事でしょうか。
やってみたのですが、うまくいかなくて。。
すみません。。
テンプレート変数のカスタムフォームでセレクトボックスを使いたい
DocListerでファイルを生成する方法で利用できているなら、@PARSE:[[DocLister?xxx]] でもよいかも?
テンプレート変数のカスタムフォームでセレクトボックスを使いたい
・・・と思ったのですが、試してみたところ@PARSEコマンドを書かなくてもパースされるようです。これは不具合なので修正します
テンプレート変数のカスタムフォームでセレクトボックスを使いたい
Yama様
解決しました!!笑
こんなに簡単に解決できるとは。。
@parseってこうやって使うんですね。
これで、複数ファイル群の間で紐づけができるようになります。
自分の中では物凄く画期的です。
たぶんこれだけではなくて、他の部分でも遠回りしている所いっぱいあると思います。
本当にありがとうございました!
解決しました!!笑
こんなに簡単に解決できるとは。。
@parseってこうやって使うんですね。
これで、複数ファイル群の間で紐づけができるようになります。
自分の中では物凄く画期的です。
たぶんこれだけではなくて、他の部分でも遠回りしている所いっぱいあると思います。
本当にありがとうございました!