• lughingcat

    (@lughingcat)


    実現したい事]

    オリジナル管理画面ページでinputタグを自作ボタンで追加、削除、移動、その設定を保存し出力ページで、反映させたい。
    [現状]
    <input type=”text” name=”text”>タグを設置、register_settingでtextを登録、options.phpにデータを送信し、get_optionで取得、
    ページに出力まではできました。
    これに自作ボタンを作成し、クリックでtextにナンバーを振り、inputタグで出力、
    同時に削除ボタンを生成し、クリックで削除、同時に移動ボタンを出力し、移動できるようにしたいと考えてます。
    javascriptで動きをつけられたのですが、wp側の設定を保存すると追加したinputタグが全て消えてしまいます。
    wp側で保存した時に追加、削除、移動を全て保存する方法はないでしょうか?
    イメージとしてはウィジェットのような動きをつけたいと考えてます。
    どうかご教授ください

    • このトピックはlughingcatが2年前に変更しました。
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Aki Hamano

    (@wildworks)

    こんにちは。
    恐らく、要素が文字列である配列を保存したいと予想しますので、以下のような実装ではどうでしょうか。

    • register_settingtypearray にする
    • 全てのinput要素を配列にする:<input type="text" name="text[]">など
    • 各要素にキーを指定しなければ、POSTデータの中身もフォームの表示順で投げられるようなので、DBにもフォームの表示順で保存されるはず
    • get_option の戻り値が配列になるはずなので、foreach 等でループさせてinput要素を表示
    トピック投稿者 lughingcat

    (@lughingcat)

    お返事ありがとうございます^^

    イメージができそうです

    早速実装してみます。

    本当に助かりました!感謝感謝です!

    トピック投稿者 lughingcat

    (@lughingcat)

    追加質問です。

    1,全てのinput要素を配列にする:<input type=”text” name=”text[]”>

    2,foreach 等でループさせてinput要素を表示

    ここまではできましたが、

    3、register_setting で type を array にする

    これがうまくいきません。

    具体的なコードをご教授ください
    以下私が書いたコードです。
    よろしくお願いいたします

    <?php

    $formelement = array(
     '<input type=”text” id=”text” name=”textform[]” value=””>’,
     '<input type=”text” id=”text” name=”textform[]” value=””>’,
     '<input type=”text” id=”text” name=”textform[]” value=””>’,
     '<input type=”text” id=”text” name=”textform[]” value=””>’

    );

    foreach($formelement as $value){
    echo $value;
    }

    ?>

    function register_custom_setting()
    {//サブフッターの入力項目をoptions.phpに登録
    register_setting(‘custom-menu-group’, ‘textform’ , array(
    ‘type’ => ‘array’,
    ‘sanitize_callback’ => ‘esc_attr’
    ));

    }
    add_action( ‘admin_init’, ‘register_custom_setting’ );`

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「inputタグの追加、削除、ドラッグ移動についての質問です」には新たに返信することはできません。