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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

Q&A

解決済

1回答

3355閲覧

jQuery UI「datepicker 」の呼び出し時にJavaScriptのonselect オプションを使う方法

emi_ono

総合スコア83

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

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

0グッド

0クリップ

投稿2021/07/26 07:31

編集2021/07/27 07:00

前提・実現したいこと

PHPで予約システムを作る勉強をしています。よろしくお願いします。

現在「予約日(datepicker)が今日の場合は、現在時刻以降のselectを表示」のwebページを見ながら進めているのですが、エラーが出て行き詰まっています。

jQueryのdatepickerで日付を取得し<select name="time">で時間を取得、予約日(datepicker)が今日の場合は、現在時刻以降のselectを表示したいです。

発生している問題・エラーメッセージ

Uncaught SyntaxError: Function statements require a function name

該当のソースコード

js

1//予約日(datepicker)が今日の場合は、現在時刻以降のselectを表示 2 onSelect: function(dateText, inst) { 3 $("#date_val").val(dateText); 4 if(today == dateText){ 5 for(var i = 0; i < timelist.length; i++){ 6 if(timelist[i] < time){ 7 document.getElementById(timelist[i]).style.display = "none"; 8 } 9 } 10 } else{ 11 for(var i = 0; i < timelist.length; i++){ 12 document.getElementById(timelist[i]).style.display = ""; 13 } 14 } 15 }

コード全体

PHH

1<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 2<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script> 3<script src="asset/datepicker-ja.js"></script> 4<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/flick/jquery-ui.css"> 5 6 7<b>予約フォーム</b><br> 8<form method="POST" action=""> 91.お名前(必須)<br> 10<input class="form1" type="text" name="username" placeholder=" お名前"/><br><br> 112.メールアドレス(必須)<br> 12<input class="form1" type="text" name="username" placeholder="〇〇@gmail.com"/><br><br> 133.カレンダーから日付を選択してください<br> 14<input type="text" id="date_val" placeholder="2018年〇月〇日"/><br> 15<div id="datepicker"></div><br> 164.時間を選択してください<br> 17 <select name="time"> 18 <option value=""> 選択してください</option> 19 <option value="">9:00~</option> 20 <option value="">10:00~</option> 21 <option value="">11:00~</option> 22 <option value="">13:00~</option> 23 <option value="">14:00~</option> 24 <option value="">15:00~</option> 25 <option value="">16:00~</option> 26 <option value="">17:00~</option> 27 </select> 28 29 <select name="time"> 30 <option value="">30分</option> 31 <option value="" selected>60分</option> 32 <option value="">90分</option> 33 <option value="">120分</option> 34 </select> 35 36 <br><br> 375.ご希望される弁護士を選択してください<br> 38 <select name="lawyer"> 39 <option value=""> 選択してください</option> 40 <option value="">松島</option> 41 <option value="">小野</option> 42 <option value="">草野</option> 43 </select> 44 <br><br> 45 <input type="submit" value="予約する" class="submit"> 46</form> 47 48<script> 49 //yyyymmdd形式で日付を取得 50 var dt = new Date(); 51 var y = dt.getFullYear(); 52 var m = ("00" + (dt.getMonth()+1)).slice(-2); 53 var d = ("00" + dt.getDate()).slice(-2); 54 var today = y + "年"+ m + "月" + d + "日"; 55 console.log(today); 56 57 58$(function() { 59 var dateFormat = 'yy年mm月dd日'; 60 $("#datepicker").datepicker({ 61 lang:'ja', 62 dateFormat: dateFormat, 63 minDate: 0, 64 onSelect: function(dateText, inst) { 65 $("#date_val").val(dateText); 66 if(today == dateText){ 67 for(var i = 0; i < timelist.length; i++){ 68 if(timelist[i] < time){ 69 document.getElementById(timelist[i]).style.display = "none"; 70 } 71 } 72 } else{ 73 for(var i = 0; i < timelist.length; i++){ 74 document.getElementById(timelist[i]).style.display = ""; 75 } 76 } 77 } 78 }); 79 80 //土日選択不可設定 81 $(function() { 82 var dateFormat = 'yy年mm月dd日'; 83 $("#datepicker").datepicker({ 84 lang:'ja', 85 dateFormat: dateFormat, 86 minDate: 0, 87 onSelect: function(dateText, inst) { 88 $("#date_val").val(dateText); 89 } 90 }); 91 $( "#datepicker" ).datepicker('option','beforeShowDay',function(date){ 92 var ret = [(date.getDay() != 0 && date.getDay() != 6)]; 93 return ret; 94 }); 95}); 96 97 }); 98 99</script>

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

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

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

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

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

guest

回答1

0

ベストアンサー

onSelect:以下の部分は、単体で書くものではありません。

$("#datepicker").datepicker({の引数オブジェクトのonSelectと置き換える形で書いてください。

投稿2021/07/26 14:00

maisumakun

総合スコア145183

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

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

emi_ono

2021/07/27 06:54 編集

maisumakunさん、ありがとうございます! $("#datepicker").datepicker({ の引数オブジェクトを置き換えました。 すると「index.php:67 Uncaught ReferenceError: timelist is not defined」 とエラーがでました。 webページの説明には「idと現在時刻の分を比較して、idが現在時刻より前(値が小さければ)、display noneに変更する。」とあるのですが、timelistにid(時間?)の値を入れるにはどうすれば良いでしょうか。 アドバイスをいただけると嬉しいです。よろしくお願いします。
maisumakun

2021/07/27 06:56

> timelistにid(時間?)の値を入れるにはどうすれば良いでしょうか。 そもそも、timelistとは何なのでしょうか。「timelist is not defined」というエラーメッセージのとおり、変数自体が定義されていません。
emi_ono

2021/07/27 07:05

ありがとうございます。 timelistの解説がなく突然でてきたのですが、 for(var i = 0; i < timelist.length; i++){ if(timelist[i] < time){ とあるので、 <select name="time">の値を配列にしてるのかな?と考えたのですが、、
maisumakun

2021/07/27 07:06

事前に自分で用意しておかないといけないものなのではないでしょうか?
emi_ono

2021/07/27 07:17

ここまで用意する指示はなかったです。 「予約時間をselectできるようにする」という項目で、 最初<option value="">9:00~10:00</option>と設定していたものを<option value="">9:00~</option>のように変更してselectを作るとありました。
maisumakun

2021/07/27 07:25

とはいえ、コード自体が「optionのIDが入った timelistを用意しておく」という前提になっているので、そのままでは動かないです。
emi_ono

2021/07/27 07:36

そうですね。 もう少し調べてみます!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問