質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

1028閲覧

MTS Simple Booking-CのカレンダーをjQueryのUIタブを使用してそれぞれのtab内でカレンダーを次の月にリンクさせられません。

localt

総合スコア6

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/08/02 08:40

前提・実現したいこと

WordpressのプラグインMTS Simple Booking-Cを使用した一つの予約フォームを2つのコース別々に予約できるよう
jQueryのUIタブを使用して1つのページ内にA(tabs-1)とB(tabs-2)それぞれの予約カレンダー・フォームを作成し、
タブをクリックすることで切り替わるような予約フォームを作成したいです。

選択することできちんと切り替わってくれるのですが、B(tabs-2)のカレンダー内にある[次の月へ]をクリックするとA(tabs-1)の次の月に移動してしまいます。

それぞれのtab内でカレンダーを次の月にリンクさせるにはどうしたらいいでしょうか?

ページ内のHTML

html

1<div id="yoyakutabs"> 2 <ul> 3 <li><a href="#tabs-1">A</a></li> 4 <li><a href="#tabs-2">B</li> 5 </ul> 6 7 <div id="tabs-1" class="panel"> 8 <?php echo do_shortcode('[monthly_calendar id="ax"]'); ?> /* 予約カレンダー呼び出し */ 9 <?php echo do_shortcode('[monthly_calendar id="axx"]'); ?> /* 予約フォーム呼び出し */ 10</div> 11 <div id="tabs-2" class="panel"> 12 <?php echo do_shortcode('[monthly_calendar id="bx"]'); ?> /* 予約カレンダー呼び出し */ 13 <?php echo do_shortcode('[monthly_calendar id="bxx"]'); ?> /* 予約フォーム呼び出し */ 14 15</div> 16</div>

タブの切り替えjQuery

jQuery

1$("#yoyakutabs").tabs({ 2 hide: { 3 effect: "fadeOut", 4 duration: 200 5 }, 6 show: { 7 effect: "fadeIn", 8 duration: 200 9 } 10 }), 11 12 $("#yoyakutabs").tabs({ 13 hide: { 14 effect: "fadeOut", 15 duration: 200 16 }, 17 show: { 18 effect: "fadeIn", 19 duration: 200 20 } 21 }),

関係しているかもしれないプラグイン内のmtssb-front.phpの一部

php

1 private function _prev_next_link($year, $month, $params) { 2 3 if ($params['pagination'] != 1) { 4 return; 5 } 6 7 // リンク 8 $prevtime = mktime(0, 0, 0, $month - 1, 1, $year); 9 $prev_title = esc_html(apply_filters('mtssb_prev_title', date(__('F, Y'), $prevtime), $prevtime)); 10 $prev_arg = array('ym' => date('Y-n', $prevtime)) + (empty($params['calendar_id']) ? array() : array('cid' => $params['calendar_id'])); 11 $nexttime = mktime(0, 0, 0, $month + 1, 1, $year); 12 $next_title = esc_html(apply_filters('mtssb_next_title', date(__('F, Y'), $nexttime), $nexttime)); 13 $next_arg = array('ym' => date('Y-n', $nexttime)) + (empty($params['calendar_id']) ? array() : array('cid' => $params['calendar_id'])); 14?> 15 <div class="monthly-prev-next"> 16 <div class="monthly-prev"><?php if ($this->this_time <= $prevtime) { 17 echo '<a href="' . esc_url(add_query_arg($prev_arg, $this->this_page)) . '"><i class="fa fa-angle-left" aria-hidden="true"></i> 前の月へ</a>'; 18 } else { 19 echo "<span class=\"no-link\"></span>"; 20 } ?></div> 21 <div class="monthly-next"><?php if ($nexttime < $this->max_time) { 22 echo '<a href="' . esc_url(add_query_arg($next_arg, $this->this_page)) . '">次の月へ <i class="fa fa-angle-right" aria-hidden="true"></i></a>'; 23 } else { 24 echo "<span class=\"no-link\"></span>"; 25 } ?></div> 26 <br style="clear:both" /> 27 </div> 28 29<?php 30 }

補足情報(FW/ツールのバージョンなど)

もともと別の方が作っていたHPを引き継ぎなしで作業しているため、
全体的によくわからず困っています。

使用しているプラグイン:MTS Simple Booking-C

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

あっているかわかりませんが、解決しました。
jQueryでnextprevのlinkに各tabが追加されるようにしました。

jQuery

1 2 $('#tabs-1 .monthly-prev-next a').each(function() { 3 var obj = jQuery(this); 4 var link = obj.attr('href'); 5 obj.attr('href', link + '#tabs-1') 6 }); 7 $('#tabs-2 .monthly-prev-next a').each(function() { 8 var obj = jQuery(this); 9 var link = obj.attr('href'); 10 obj.attr('href', link + '#tabs-2') 11 }); 12 13 14}); 15

投稿2019/08/05 01:57

localt

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

解決しました。
jQueryでnextprevのlinkに各tabが追加されるようにしました。

$('#tabs-1 .monthly-prev-next a').each(function() { var obj = jQuery(this); var link = obj.attr('href'); obj.attr('href', link + '#tabs-1') }); $('#tabs-2 .monthly-prev-next a').each(function() { var obj = jQuery(this); var link = obj.attr('href'); obj.attr('href', link + '#tabs-2') });

});

投稿2019/08/05 01:55

localt

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問