• PHP初心者です。

    http://www.nishi2002.com/3502.html

    上記サイトを参考に美容院の予約システムに『MTS Simple Booking C』を使用しようとカスタマイズにチャレンジしております。

    参考サイトの用にコースを選んで予約するようにしたいのですが、このプルダウン方式だとカットかパーマかカラーかどれか一択しかできません。
    できれば複数選択可能なチェックボックスに変更したいのですが、何分PHP初心者のためやりかたがわかりません。
    予約フォーム画面のプルダウンをチェックボックスに変更しても予約確認画面では反映されず、データの受け渡しのためのソースがあるのではないのかと悩むのですが、、、

    投げっぱなしの質問で大変恐縮ですが、お時間がある方若しくは参考となるサイトをご存知の方、是非ご教授お願い致します。

    役にたつかわかりませんが、ソースを張り付けさせて頂きます。

    ■予約フォーム■
    <?php if (0 < $this->clcols[‘course’]) : ?><tr>
    <th><label for=”client-course”><?php echo apply_filters(‘booking_form_course’, ‘コース’); echo $this->clcols[‘course’] == 1 ? $this->_require_message() : ” ?></label></th>
    <td>
    <select name=”booking[client][course]”>
    <option>カット</option>
    <option>パーマ</option>
    <option>カラーリング</option>
    <option>ヘッドスパ</option>
    </select>

    ■予約確認画面■
    <?php if (0 < $this->clcols[‘course’]) : ?><tr>
    <th><?php echo apply_filters(‘booking_form_course’, ‘コース’) ?></th>
    <td>
    <?php echo esc_html($client[‘course’]) ?>
    <input type=”hidden” name=”booking[client][course]” value=”<?php echo esc_html($client[‘course’]) ?>” />
    </td>
    </tr><?php endif; ?>

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • 参考サイトの用にコースを選んで予約するようにしたいのですが、このプルダウン方式だとカットかパーマかカラーかどれか一択しかできません。
    できれば複数選択可能なチェックボックスに変更したいのですが、

    まず、プルダウンで一択するのとチェックボックスの1つにチェックを入れるのが同じ(どちらも1項目分)だと考えればよいと思います。

    参考になさったサイトが「会社名の行をコピーしてコースを追加」という方法を説明しているので、それを真似て「1個目のチェックボックスでカット」、「2個目のチェックボックスでパーマ」のように追加なさってはどうでしょうか。
    courseという名前1つの代わりに、course_cut, course_perm, course_coloring, course_headspa のように別々の名前を付ければ分けられます。
    その上で、予約フォームの入力画面と確認画面のレイアウトを工夫して、コースという行の中にチェックボックスを横に並べることができると思います。

    予約フォーム画面のプルダウンをチェックボックスに変更しても予約確認画面では反映されず、データの受け渡しのためのソースがあるのではないのかと悩むのですが、、、

    参考になさったサイトの『ステップ4/6:フォームデータ受け渡し部に「コース」を追加』は、1項目毎に受け渡し用のphpコードを足すようになっています。
    ですので、チェックボックスがカットとパーマの2個なら、2個分のphpコードを足す必要があります。

    まったく、longfreewayさんと同じところでつまずいています。

    <select name>

    <input>に置き換えて、
    <input=”booking[client][course]”>
    <input type=”checkbox” name=”cut” value=”1″>カット
    <input type=”checkbox” name=”parm” value=”2″>カラー
    <input type=”checkbox” name=”color” value=”3″>パーマ
    にすると、フォーム入力画面では、上記3項目にチェックボックスが入る状態になるのですが、
    確認画面に反映されません。

    『ステップ4/6:フォームデータ受け渡し部に「コース」を追加』は、1項目毎に受け渡し用のphpコードを足すようになっています。
    ですので、チェックボックスがカットとパーマの2個なら、2個分のphpコードを足す必要があります。

    ここの記述がネックになってると思いますが、どのように記述したらいいのか、
    試行錯誤しています。
    できれば、ご教授いただきたいのですが。

    当方の記述です。
    switch ($keyname) {
    case ‘course’ :
    case ‘course_cut’ :
    case ‘course_parm’ :
    case ‘course_color’ :

    −−−
    ‘client’ => array(
    ‘course_cut’ => ”,
    ‘course_parm’ => ”,
    ‘course_color’ => ”,

    間違いなど、ご指摘いただけるとたいへん助かります。

    何卒、宜しくお願い致します。

    cuffsさん

    フォーム入力画面では、上記3項目にチェックボックスが入る状態になるのですが、確認画面に反映されません。

    オリジナルの「コースをプルダウンで選ぶ」つまり「同時に選べるコースは一つだけ」という形式はうまく動いてくれますよね。
    ここで「チェックボックスを使って2つ以上選べるようにする」という変更を一気にやってしまう代わりに、次のように2段階に分けて変更してみては如何ですか。

    1. コースを1つだけ(例:カット)にして、チェックボックスで選ぶ。つまり「幾つかのコースの中からカットを選べる」のでなく、「カットするかしないか」を選べる(チェックを入れる、それとも入れない)ようにする。
    2. コースを1つだけチェックボックスで選べるようにできた後、それを複製して2つ目のコース、3つ目のコースという風に増やす。

    さて、この変更を行う時には、幾つか注意が必要と思います。

    • inputタグのnameにcut、parm、colorの3つを指定するなら、オリジナルの例で company の部分をコピーして course に変えた箇所を(inputタグだけでなく他の部分も)course_cut 等にせずcut、parm、colorの3つ作る。

    別の方法として、company を course に変えた例を生かすには、selectタグのnameをcourseのままにします。その代わりselectタグのvalueをcut、parm、colorにします。

    しかし、これだけだと、2つ以上チェックを入れてもたぶん1つしか確認画面へ反映されないと思います。2つ以上選んで反映されるようにするには、他にも工夫が必要ですね。考える材料としては下記リンク先のページが役に立つのではないかと思います。
    http://www.webword.jp/xhtml/form/index8.html

    当トピックで取り上げていただいたサイトの作者です。

    以下のページに解決策の記事を投稿しました。

    http://www.nishi2002.com/7856.html

    修正は2か所です。

    1.ドロップダウンをチェックボックスに変更する
     ポイントはname属性に[]を付けて、複数の選択値を配列で取得できるようにすることでしょうか。

    2.送信された複数値を処理できるように確認画面以降のコードを変更する

    もっと良い方法もあると思いますが、取り急ぎ。

    ※禁止事項に抵触していたのでフォーラム管理者により削除。

    name属性に[]を付けて、複数の選択値を配列で取得できるようにする

    コピー・ペーストだけでは原理が理解できないので、
    ここをネットでめちゃくちゃ調べました。

    エディタではうまくうごくようになり、あとは、MTS Simple Bookingの中での受け渡しを描いてようやっと理解できたかな、というところです。

    ghvstさん、nisi1134さん、
    ご回答いただき感謝です。

    nisi1134さんの投稿の一部が禁止事項に抵触していたので編集しました。
    http://ja.forums.wordpress.org/topic/265?replies=1

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「MTS Simple Booking C のカスタマイズ」には新たに返信することはできません。