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

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

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

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

PHP

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

1550閲覧

複数日程のフォーム登録

naonao11

総合スコア97

WordPress

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

PHP

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/04/17 07:19

編集2018/04/17 08:34

登録フォームで複数日(例:4月21日、4月23日、4月26日を一気に)登録したいのですが、日程のみ登録できません。NULLが返ってきます。
他のformタグで作成しているためでしょうか、この場合について調べてみたのですが腑に落ちることが書かれていません。。。
お力をお借りしたく思います。

日程については
配列で入れています。

以下、登録フォームのファイルです。

php

1<div class="wrap2" style="margin: 200px 0 0 600px"> 2 <h1>イベント登録</h1> 3 <div id="primary" class="content-area"> 4 <main id="main" class="site-main" role="main"> 5 <form action=<?php echo get_permalink( get_page_by_title("confirm") ); ?> name="event" method="post"> 6 <div> 7 <p style="font-size:25px">イベント種類</p> 8 <select name="eventKind" style="font-size:30px"> 9 <option>---</option> 10 <option value="1">イベントA</option> 11 <option value="2">イベントB</option> 12 <option value="3">イベントC</option> 13 </select> 14 </div> 15 <div> 16 <p style="font-size:25px">時間</p> 17 <input type="time" name="startTime" step="600" value="" style="font-size:30px"> 18 <span></span> 19 <input type="time" name="endTime" step="600" value="" style="font-size:30px"> 20 </div> 21 <div> 22 <p style="font-size:25px">枠数</p> 23 <input type="text" name="capacity" value="" style="font-size:30px"> 人  24 </div> 25 <div> 26 <p style="font-size:25px">会場</p> 27 <select name="place" style="font-size:30px"> 28 <option>---</option> 29 <option value="1">天王寺</option> 30 <option value="2">京橋</option> 31 <option value="3">梅田</option> 32 <option value="10">大阪</option> 33 </select> 34 </div> 35 <input type="submit" id="regestar" name="submit" value="登録ボタン" style="font-size:30px;float:right; margin-right:600px"> 36 </form> 37 <form id="dateCalender" method="post"> 38 <input type="hidden" id="date" name="date" > 39 <p style="font-size:25px">日付<p> 40 <div class="mycalendar"></div> 41 <input type="hidden" name="enterDate" id="enterDate" value=""> 42 </form> 43 </main><!-- #main --> 44 <p><a href="http://localhost">もとに戻る</a></p> 45 <p><a href="http://localhost/wp-admin/">wordpress編集画面</a></p> 46 </div><!-- #primary --> 47 </div><!-- .wrap --> 48 49<style type="text/css"> 50.mycalendar { 51 overflow:hidden; 52} 53table{ 54 border: #dddddd solid 1px; 55 border-collapse: collapse; 56 line-height:1em; 57 float: left; 58 margin: 5px; 59} 60table th{ 61 border: #dddddd solid 1px; 62 background-color: #162F6B; 63 padding: 5px; 64 color: #FFFFFF; 65 font-size: 0.9em; 66} 67table td{ 68 border: #dddddd solid 1px; 69 padding:10px; 70 text-align: right; 71 cursor: pointer; 72} 73table td:hover{ 74 background-color: #FFF09E; 75} 76.calendar_button a{ 77 color: #FFFFFF; 78 text-decoration: none; 79 font-weight: normal; 80 display: inline-block; 81 background-color: #878787; 82 padding: 5px; 83 border-radius: 3px; 84} 85.calendar_button a:hover{ 86 background-color: #9E9E9E; 87} 88</style> 89 90<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 91<script src="http://studio-key.com/Sample/MyPlugin/CheckCalendar/check.calendar...."></script> 92 93<script type="text/javascript"> 94$(function(){ 95 96 var today = new Date(); 97 var thisYear = today.getFullYear(); 98 var lastMonth = today.getMonth() + 1; 99 100$('.mycalendar').cehckcalendar({ 101 'start' : thisYear + '-' + lastMonth, 102 'week' : ["日", "月", "火", "水", "木", "金", "土"], 103 'roop' : 3, 104 'prefix' : 'neko_', 105 'delimiter' : '-', 106 'td_on' : '#BE8EB5', 107 'td_off' : '#FFFFFF', 108 'send' : 'date' 109}); 110 111//保存 (送信) 112 $("#regestar").on("click", function(){ 113 if ($("#date").val()==""){ 114 alert("送信すべきデータがありません。"); 115 return; 116 } 117 }); 118}); 119</script> 120 121<?php 122if ( isset($_POST['enterDate']) ){ 123 $task = $_POST['enterDate']; 124 if(!empty($task)){ 125 file_put_contents('days.txt', $_POST['date']); 126 } 127} 128 129if (file_exists('days.txt')) { 130 $resdays = file_get_contents('days.txt'); 131 $array = explode(',', $resdays); 132 $str = '"' . implode('","', $array) . '"'; 133} 134?> 135

以下、確認画面のフォームです。

php

1<?php 2if(isset($_POST['submit'])) { 3 $_SESSION['eventKind'] = $_POST['eventKind']; 4 $_SESSION['enterDate'] = $_POST['enterDate']; 5 $_SESSION['startTime'] = $_POST['startTime']; 6 $_SESSION['endTime'] = $_POST['endTime']; 7 $_SESSION['capacity'] = $_POST['capacity']; 8 $_SESSION['place'] = $_POST['place']; 9 $_SESSION['submit'] = $_POST['submit']; 10 } 11 var_dump($_POST['date']); 12?> 13 14<table rules="all" border="border"> 15 <tr> 16 <th>イベント名</th><td><p><?php echo htmlspecialchars($_SESSION['eventKind']); ?></p></td> 17 </tr> 18 <tr> 19 <th>日付</th><td><p> 20 <? foreach ($_SESSION['enterDate'] as $value){ 21 $date = htmlspecialchars($value)." "; 22 }; 23 echo $date; 24 ?> 25 </p></td> 26 </tr> 27 <tr> 28 <th>時間</th><td><p><?php echo htmlspecialchars($_SESSION['startTime']); ?><?php echo htmlspecialchars($_SESSION['endTime']); ?></p></td> 29 </tr> 30 <tr> 31 <th>枠数</th><td><p><?php echo htmlspecialchars($_SESSION['capacity']); ?></p></td> 32 </tr> 33 <tr> 34 <th>会場</th><td><p><?php echo htmlspecialchars($_SESSION['place']); ?></p></td> 35 </tr> 36</table> 37 38<center><span> 39 <button class="submit" type="button" onclick="location.href='contact'">修正</button> 40 <button class="submit" type="button" onclick="location.href='complete'">完了</button> 41</span></center> 42

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

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

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

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

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

m.ts10806

2018/04/17 08:22

「test」というnameの入力コントロールはどこにもないようですが・・・?調べた先のURLもご提示ください。「dateCalender」フォームの用途がいまひとつ分かりません。小難しいことをやろうとしているようにも思えます。
m.ts10806

2018/04/17 08:23

ひとまず注意点としてはsubmitボタンは自身が所属しているformしか送信しません。
naonao11

2018/04/17 08:28

test→dateでした、ご指摘ありがとうございます!やはりそうなんですね、、、2つ以上formがある場合1つのところにコピーしてまとめるようなことを書いていたので試したのですができませんでした。。。参照先)https://teratail.com/questions/34611
m.ts10806

2018/04/17 08:32

全部送信してconfirm側で作ってしまえばいいように思います。現状だとenterDateに何も入れてないので結局days.txtで何がしたいのか分からない状態です。 参照先の質問とはまた要件が違うようにも思います。何かしら前回質問とつながりがあるかもしれませんが「複数日」の定義を具体的にされた方が良いように思います。
m.ts10806

2018/04/17 08:34

javascript側にある「cehckcalendar」というのもどんなものか分からないですね。何かプラグインを使われているのであればそこも明記された方が良いかと思います(なんとなくつづりが違うように思います)
naonao11

2018/04/17 08:37

cehckcalendarについてなのですがhttp://studio-key.com/1248.htmlを参考にしました。。。
m.ts10806

2018/04/17 08:37

何度もすみません。結局「日程」をどのように設定するのか、というところが先ですね。「date」という入力コントロールも見受けられません。
naonao11

2018/04/17 08:57

全部送信してconfirm側で作ってしまえばいい> これは違うフォームのものを一斉に送ることは可能なのでしょうか?
m.ts10806

2018/04/17 12:13

いえformをわける必要がないということです。
m.ts10806

2018/04/17 12:13

>配列で値を持つことができたら最高なのですが。。。   これプラグインじゃないですか?このプラグイン使えばいいのでは。
naonao11

2018/04/17 13:16

formを分けずにまとめる、ということでしょうか? wordpressのプラグインではありません、一度調べてみます。。ありがとうございます!
m.ts10806

2018/04/17 22:59

いえwordpressではなくjqueryのプラグインでは?という意味でした。仕組みとしてはjavascriptでカレンダーを作りチェックした日付でチェックボックスを非表示にして作り、送信しているものだと思います。いずれにせよ「任意の日付を選ぶ」のであればカレンダーを作る必要がありますね。
naonao11

2018/04/17 23:28

なるほど。。。昨日いじって値は反映されるようになったので今回はそれを使ってみます!本当に親切にありがとうございます!
m.ts10806

2018/04/17 23:53

あとは本質問の落としどころですね・・。回答もついてきているので、「ゴール」をもう少し明確に質問に書いてみてください。今現在の内容だけだとおそらく回答のもので良いのですが、ここのコメント欄で色々進んでいるようにも思うので。
naonao11

2018/04/18 00:42

かしこまりました、ゴールをうまく伝えれるようにしておきます!
guest

回答2

0

他のformタグで作成しているためでしょうか、

このとおりです。
submitしたbuttonやinput[type=submit]を内包するformのみのデータしかリクエストされないためです。

投稿2018/04/17 08:36

yukkenoottuna

総合スコア51

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

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

0

UI次第でしょうけど、たとえばセレクトボックスをつかって
複数の日付をおくるときはこんな感じ

PHP

1<form method="post"> 2<select name="date[]" multiple size="10"> 3<option value="2018-04-20">4/20</option> 4<option value="2018-04-21" selected>4/21</option> 5<option value="2018-04-22">4/22</option> 6<option value="2018-04-23" selected>4/23</option> 7<option value="2018-04-24">4/24</option> 8<option value="2018-04-25">4/25</option> 9<option value="2018-04-26" selected>4/26</option> 10</select><br> 11<input type="submit" value="go"> 12</form> 13<?PHP 14$date=filter_input(INPUT_POST,"date",FILTER_DEFAULT,["options"=>["default"=>[]],"flags"=>FILTER_REQUIRE_ARRAY]); 15print_r($date); 16?>

投稿2018/04/17 08:58

yambejp

総合スコア114837

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問