2011-03-15 14 views
2

私はウィジェットを作成しました。ユーザーが一連のオプションから選択できるようにする必要があります。オプションは、データベース内の別のテーブルからの書籍です。どのようにWordpressウィジェットにチェックボックスの配列を保存できますか?

私はこのようなコードを使用しようとしている

<input type="text" name="<?PHP $this->get_field_name("books[]"); ?>"> 

を保存しようとしたときしかし、これは失敗します。このようなオプションの配列を渡して保存することも可能ですか?そうでない場合、代替ソリューションは何でしょうか。私はこのような値を渡すことができます。

book1 
book2 
book3 

私はこれを行う場合、私は更新方法のループがチェックされているかを決定するために、データベース内のすべての書籍を通過し、ものではありません持っている必要がありますでしょうか?私は提案に開放されています。

+1

私は混乱しています。あなたの質問はチェックボックスについてですが、あなたのHTMLはテキストボックスをレンダリングしています。何か不足していますか? – vicTROLLA

答えて

2

私はこのような何かをしたい:

まず、オプションを保存し、配列としてそれらを選ぶ:

$options = get_option("pluginName_books"); 

update_option("pluginName_books",$_REQUEST['books']); 

使用このフォームでフィールドとして:

<input type="text" name="books[]" value="the_value"> 

またはチェックボックスとして行う:

<input type="checkbox" name="<?PHP $this->get_field_name("books[]"); ?>"> 
+0

これは私が必要としたものです。チェックボックスの名前をbooks []に設定した後、wp_widgetクラスのupdateメソッドでupdate_option関数を使用しました。完璧に動作します。私は、オプションを追加のストレージメカニズムとして使用することは考慮しませんでした。ありがとう。 – TheWeightOfTheWorld

+0

クール。うまくいきました;) –

+0

あなたの答えは参考になりましたが、私はほとんどの場合、( '、'、$ _REQUEST ['books'])を念入りにしてプラグインのインスタンス。フロントエンドディスプレイのウィジェットフォームで、あなたはexplode( '、'、$ instance ['book']); - したがって、オプションテーブルに値を保存する必要は必ずしもありません –

1

ちょうど同じ問題がありました。私はget_field_nameの呼び出しの外に私の名前タグの配列部分を付けて解決しました:

name="<?php echo $this->get_field_name('breakpoints'); ?>[]" 
関連する問題