カスタムフィールドを表示する方法とエラーの解決策

このQ&Aのポイント
  • カスタム投稿ページでカスタムフィールドを表示する方法として、`get_post_meta()`関数を使用して入力エリアを作成します。エラーが発生した場合、`$slug`の代わりに`$post`を使用する必要があります。
  • カスタムフィールドが表示されない場合、以下の可能性が考えられます。 1. `$slug`の代わりに`$post`を使用しているため、正しい投稿オブジェクトが取得できていない。 2. カスタムフィールドのキーが間違っている。 3. カスタムフィールドの値が保存されていない。 これらの要因を確認して、問題を解決してください。
  • SEOを意識したタイトルと要約文は以下の通りです。 タイトル:「カスタムフィールドの表示方法とエラー解決策」 要約文:「カスタム投稿ページでカスタムフィールドを表示する方法とエラーの解決策について説明します。エラーが発生した場合の解決策も紹介します。」
回答を見る
  • ベストアンサー

カスタム投稿ページでカスタムフィールドを表示

参考 https://fit-jp.com/customfield/ コメントに「custom_post_typeのslugを指定することも可能」と書いてありましたので、 $post;を全て$slugに置き換えました。(5箇所) 置き換えたものが以下になります。 それでも表示されませんでした。どこが間違っておりますか?ご教鞭ください。 宜しくお願いします。 // カスタムフィールドの入力エリア function insert_book_fields() { global $slug; //下記に管理画面に表示される入力エリアを作ります。「get_post_meta()」は現在入力されている値を表示するための記述です。 echo '題名: <input type="text" name="book_name" value="'.get_post_meta($slug->ID, 'book_name', true).'" size="50" /><br>'; echo '作者: <input type="text" name="book_author" value="'.get_post_meta($slug->ID, 'book_author', true).'" size="50" /><br>'; echo '価格: <input type="text" name="book_price" value="'.get_post_meta($slug->ID, 'book_price', true).'" size="50" /> <br>'; if( get_post_meta($slug->ID,'book_label',true) == "is-on" ) { $book_label_check = "checked"; }//チェックされていたらチェックボックスの$book_label_checkの場所にcheckedを挿入 echo 'ベストセラーラベル: <input type="checkbox" name="book_label" value="is-on" '.$book_label_check.' ><br>'; }

  • nkmyr
  • お礼率67% (403/600)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • garo1970
  • ベストアンサー率52% (54/103)
回答No.1

>$post;を全て$slugに置き換えました これは違います。 add_meta_box(・・・・) の「第4引数のpostを違うものに変えられますよ」と言っていて、 pageに変えれば固定ページになるし、 「custom_post_typeのslugを指定することも可能」 という意味です。 特定のカスタムポストタイプの投稿で表示させたいということであれば add_meta_box(・・・・)の第4引数を そのカスタム投稿タイプ名にします。 例えばそのカスタム投稿タイプ名がcustom_bookであれば add_meta_box( 'book_setting', '本の情報', 'insert_book_fields', 'custom_book', 'normal'); となります。 そして、insert_book_feilds()関数の中の$postは $slugに変えてはいけません。 $postのままです。

nkmyr
質問者

お礼

ご教鞭ありがとうございます。 そういう意味でしたか。 お陰様で表示できました。

関連するQ&A

  • htmlとphpのデータ受け渡し???

    いつもお世話になり誠にありがとうございます。 標記の件。 まだ、ボク自身、解っていないようです。 htmlとphpのソースコードを提示します。 どうすればデータの受け渡しができるか? 添削してくださらないでしょうか? html <!--入力画面--> <form action = "./Blog.php" method = "get"> <label class="label" for="name">お名前(ニックネーム)</label> <center><input id="name" type="text" name="name"></center> <label class="label" for="e-mail">メール</label> <input id="e-mail" type="e-mail" name="e-mail"> <label class="label" for="category">カテゴリー</label> <input id="category" type="category" name="categoryl"> <label class="label" for="message">本文</label> <textarea name="area1" style="color:rgb(8, 8, 8); font-size:100%;" cols="50" rows="30"></textarea><br> <input type="submit" name="confiem" value="確認"> </form> CSS <meta charset="utf-8"> <?php session_start(); $mode = 'input'; if( isset($_POST['back']) && $_POST['back'] ){ //何もしない } else if( isset($_POST['confirm']) && $_POST['confirm'] ){ $_SESSION['name'] = $_POST['name']; $_SESSION['e-mail'] = $_POST['e-mail']; $_SESSION['category']= $_POST['category']; $_SESSION['message'] = $_POST['message']; $mode = 'confirm'; } else if( isset($_POST['send']) && $_POST['send'] ){ $mode = 'send'; } else { $_SESSION['name'] =""; $_SESSION['e-mail'] =""; $_SESSION['category']=""; $_SESSION['message'] =""; } ?> <!--確認画面--> <?php if( $mode == 'input' ){ ?> お名前(ニックネーム)<?php echo $_POST['name'] ?><br> Eメール<?php echo $_POST['e-mail'] ?><br> カテゴリー<?php echo $_POST['category'] ?><br> 本文<br> <?php echo nl2br($_POST['message']) ?><br> <input type="submit" name="back" value="戻る" /> <input type="submit" name="send" value="送信" /> <?php } else { ?> <!--完了画面--> <?php } ?> 上記の通りです。 全然ダメだと思います。 添削のほど、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • アンケートページでチェックボタンのチェック数を表示させたい

    閲覧ありがとうございます。<m(__)m> アンケートページ作成の際、JavaScriptがうまく動いてくれず、 調べても原因が分からず・・・ほとほと困り果てております。 どなたか詳しい方、よろしくお願いいたします。 <アンケート内容> ・ラジオボタン形式とチェックボタン形式 ・チェックボタンがちょっと変わっていて、チェック中にチェックした数を  一番下のテキストフィールドに表示したい。 <問題> ・チェック数がカウントされない。  ラジオボタンを削除して、チェックボタンのみ単独の場合は問題なく動く。 <記述内容> <head> <SCRIPT language="JavaScript"> <!--eelife ck_suu=3; //チェックボックス数 function chg(){ v=0; for (i=0; i<ck_suu; i++){ if (document.hogehoge.elements[i].checked){v++; } } msg ="チェック数は " + v + "個です。"; document.hogehoge.tBox.value = msg; } // --> </SCRIPT> </head> <body> <FORM name="hogehoge" action="../../cgi-bin/mihon.cgi" method="POST"> 御趣味はなんですか?<BR> <input type="radio" name="ご趣味は?" value="料理" id="a1" checked> <label for="a1">料理</label><br> <input type="radio" name="ご趣味は?" value="昼寝" id="a2"> <label for="a2">昼寝</label><br> <input type="radio" name="ご趣味は?" value="運動" id="a3"> <label for="a3">運動</label> <BR> <BR> ○○チェックリスト<BR> 該当するものにチェックを入れて下さい。<br> <INPUT type="checkbox" name="チェック1" value="○" id="a1" onclick="chg()">項目1<BR> <INPUT type="checkbox" name="チェック2" value="○" id="a2" onclick="chg()">項目2<BR> <INPUT type="checkbox" name="チェック3" value="○" id="a3" onclick="chg()">項目3<BR> <BR>現在のチェック数は… <INPUT size="25" type="text" name="tBox"><BR> <input type="submit" value="送信する"> </FORM> </body> 複数の質問がある場合、チェック数を表示させるのはムリがあるのでしょうか。 チェック項目は30近くあり、どのくらいチェックしているのか回答者が分かると とても便利なので諦めずにおります。。。 ダメでもともとですが、よろしくお願いいたします。

  • ページにHTMLデータを出力の方法につきまして

    いつもお世話になっております。 現在、javascriptを使って5択の問題が出題できるコンテンツを作成しております。五択を選択し、ボタンを押すと、選択した番号や正解不正解をを同じフォーム上の下に表示させたいと思っております。 サイトを参照(http://www.openspc2.org/reibun/JavaScript_technique/sample/06_DOM/007/index.html)して、test01.html内では同じフォーム上に結果を出すことまではできたのですが、テストの種類を増やしたくて、test02.htmlを作りました。test01で使用したプログラムをコピーして、必要そうなID名などだけを変えてみたのですが、test02.htmlでは動いてくれず、行き詰まっていましました。 js側 window.onload = function() { document.getElementById("check").onclick = function() { //すべての解答を入れる変数の定義 var anserbox = "" //問1 var checkList = ["q1_01","q1_02","q1_03","q1_04","q1_05"]; for(var i=0; i<checkList.length; i++) { var chkObj = document.getElementById(checkList[i]); if (chkObj.checked) { anserbox += "問1は"+ chkObj.value + "を選択しました<br>"; if (chkObj.value == 1){ anserbox += "正解<br>"; } //if (chkObj.value == 1){ point += 5; } else anserbox += "不正解<br>正解は1です<br />"; } } //anserboxに格納された値をウィンドウに表示する document.getElementById("result").innerHTML = anserbox; } document.getElementById("check2").onclick = function() { //すべての解答を入れる変数の定義 var anserbox = "" //問1 var checkList = ["q1_01","q1_02","q1_03","q1_04","q1_05"]; for(var i=0; i<checkList.length; i++) { var chkObj = document.getElementById(checkList[i]); if (chkObj.checked) { anserbox += "問1は"+ chkObj.value + "を選択しました<br>"; if (chkObj.value == 1){ anserbox += "正解<br>"; } //if (chkObj.value == 1){ point += 5; } else anserbox += "不正解<br>正解は1です<br />"; } } document.getElementById("result2").innerHTML = anserbox; } } test01.html側 <form action="./enq.cgi" method="get"> <label><input type="radio" id="q1_01" name="q1" value="1">1</label><br> <label><input type="radio" id="q1_02" name="q1" value="2">2</label><br> <label><input type="radio" id="q1_03" name="q1" value="3">3</label><br> <label><input type="radio" id="q1_04" name="q1" value="4">4</label><br> <label><input type="radio" id="q1_05" name="q1" value="5">5</label><br> <input type="button" id="check" value="チェック" > </form> <div id="result">結果:</div> test02.html側 <form action="./enq.cgi" method="get"> <label><input type="radio" id="q1_01" name="q1" value="1">1</label><br> <label><input type="radio" id="q1_02" name="q1" value="2">2</label><br> <label><input type="radio" id="q1_03" name="q1" value="3">3</label><br> <label><input type="radio" id="q1_04" name="q1" value="4">4</label><br> <label><input type="radio" id="q1_05" name="q1" value="5">5</label><br> <input type="button" id="check2" value="チェック" > </form> <div id="result2">結果:</div> js側の3行目のdocument.getElementById("check").onclick = function()は実行されるのですがtest01.htmlはokなのですが、 中段にありますdocument.getElementById("check2").onclick = function()はボタンを押しても無反応です。(test02.html) どちらも単体では実行可能でしたので、使い方に間違いがあるのかも知れません。今日一日でわからなかったら質問しようと思っていましたので、投稿致します。 どうかご教授宜しくお願い致します。

  • scriptについて質問です。

    自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <script> function calc(f){ var sum=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) sum+=parseInt(f[i].value); } f.judge.value=sum; } </script> <form action="chekker/" method="post"> <ol> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q1" id="Q1_1" value="2"><label for="Q1_1">はい</label> <input type="radio" name="Q1" id="Q1_2" value="0"><label for="Q1_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q2" id="Q2_1" value="2"><label for="Q2_1">はい</label> <input type="radio" name="Q2" id="Q2_2" value="0"><label for="Q2_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q3" id="Q3_1" value="2"><label for="Q3_1">はい</label> <input type="radio" name="Q3" id="Q3_2" value="0"><label for="Q3_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q4" id="Q4_1" value="2"><label for="Q4_1">はい</label> <input type="radio" name="Q4" id="Q4_2" value="0"><label for="Q4_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q5" id="Q5_1" value="2"><label for="Q5_1">はい</label> <input type="radio" name="Q5" id="Q5_2" value="0"><label for="Q5_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q6" id="Q6_1" value="2"><label for="Q6_1">はい</label> <input type="radio" name="Q6" id="Q6_2" value="0"><label for="Q6_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q7" id="Q7_1" value="2"><label for="Q7_1">はい</label> <input type="radio" name="Q7" id="Q7_2" value="0"><label for="Q7_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q8" id="Q8_1" value="2"><label for="Q8_1">はい</label> <input type="radio" name="Q8" id="Q8_2" value="0"><label for="Q8_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q9" id="Q9_1" value="2"><label for="Q9_1">はい</label> <input type="radio" name="Q9" id="Q9_2" value="0"><label for="Q9_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q10" id="Q10_1" value="2"><label for="Q10_1">はい</label> <input type="radio" name="Q10" id="Q10_2" value="0"><label for="Q10_2">いいえ</label> </ol> <center> <p><font size="+1" color="#FF0000"><b>採点!!</b></font></p> <input type="text" name="judge" value="0" SIZE="10"> <input type="button" value="採点する" onClick="calc(this.form);window.open('kekka.html','windowname');"> </p></center> </form> 質問項目が10個あるのですが、どれか一つにでもチェックが入っていない場合 「全てチェックしてください」と返したいのですがどうすればいいのでしょうか? また点数の合計が10点の時は1.html 点数が14点の時は2.htmlという場合どういった記述をすればいいのでしょうか? ご面倒ですが回答のほどよろしくお願いします。

  • form変数の初期化

    <br /><b>Notice</b>: Undefined index: your_name in <b>C:\xampp\htdocs\test\index.php</b> on line <b >83</b><br /> 入力画面で上記のエラーが解決しません。 どうすればいいでしょうか? 入力画面 <?php $_POST = array(); ?> <form method="post" action="./form_check.php"> <div class="element_wrap"> <label>氏名</label> <input type="text" name="your_name" value="<?php echo $_POST["your_name"]?>"> </div> <div class="element_wrap"> <label>メールアドレス</label> <input type="text" name="email" value=""> </div> <input type="submit" name="btn_confirm" value="入力内容を確認する"> </form> 確認画面 <?php $your_name = $_POST["your_name"]; ?> <form method="post" action="./test.php"> <div class="element_wrap"> <label>氏名</label> <p><?php echo $your_name; ?></p> </div> <div class="element_wrap"> <label>メールアドレス</label> <p><?php echo $_POST['email']; ?></p> </div> <input type="submit" name="btn_submit" value="送信"> </form> <form method="post" action="./index.php"> <!--<input type="button" name="btn_back" onclick="history.back()" value="戻る">--> <input type="submit" name="btn_back" value="戻る"> <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>"> <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>"> </form>

    • 締切済み
    • PHP
  • Javascriptの結果の出し方で困っています。

    自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <script> function calc(f){ var sum=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) sum+=parseInt(f[i].value); } f.judge.value=sum; } </script> <form action="chekker/" method="post"> <ol> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q1" id="Q1_1" value="2"><label for="Q1_1">はい</label> <input type="radio" name="Q1" id="Q1_2" value="0"><label for="Q1_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q2" id="Q2_1" value="2"><label for="Q2_1">はい</label> <input type="radio" name="Q2" id="Q2_2" value="0"><label for="Q2_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q3" id="Q3_1" value="2"><label for="Q3_1">はい</label> <input type="radio" name="Q3" id="Q3_2" value="0"><label for="Q3_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q4" id="Q4_1" value="2"><label for="Q4_1">はい</label> <input type="radio" name="Q4" id="Q4_2" value="0"><label for="Q4_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q5" id="Q5_1" value="2"><label for="Q5_1">はい</label> <input type="radio" name="Q5" id="Q5_2" value="0"><label for="Q5_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q6" id="Q6_1" value="2"><label for="Q6_1">はい</label> <input type="radio" name="Q6" id="Q6_2" value="0"><label for="Q6_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q7" id="Q7_1" value="2"><label for="Q7_1">はい</label> <input type="radio" name="Q7" id="Q7_2" value="0"><label for="Q7_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q8" id="Q8_1" value="2"><label for="Q8_1">はい</label> <input type="radio" name="Q8" id="Q8_2" value="0"><label for="Q8_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q9" id="Q9_1" value="2"><label for="Q9_1">はい</label> <input type="radio" name="Q9" id="Q9_2" value="0"><label for="Q9_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q10" id="Q10_1" value="2"><label for="Q10_1">はい</label> <input type="radio" name="Q10" id="Q10_2" value="0"><label for="Q10_2">いいえ</label> </ol> <center> <p><font size="+1" color="#FF0000"><b>採点!!</b></font></p> <input type="text" name="judge" value="0" SIZE="10"> <input type="button" value="採点する" onClick="calc(this.form)"> </p></center> </form> はいが2点、いいえが0点とします。 この記述方法だと、テキストボックスに点数の合計が記載されてしまいます。 別ページに点数の合計を呼び出したいのですが、どうすればいいのでしょうか。 ※ページの内容で中身が変わるわけではなく、点数の結果を表示したいです。 ※呼び出す際のコードも記載していただけたらありがたいです ※結果のページをkekka.htmlとします。 初心者なのでどうしたらいいのか分かりません。よろしくお願いします。

  • Javascriptの結果の出し方で困っています

    自分のサイトにチェッカーを入れたくて下記の記述を書きました。 <script> function calc(f){ var sum=0; for(var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].checked) sum+=parseInt(f[i].value); } f.judge.value=sum; } </script> <form action="chekker/" method="post"> <ol> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q1" id="Q1_1" value="2"><label for="Q1_1">はい</label> <input type="radio" name="Q1" id="Q1_2" value="0"><label for="Q1_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q2" id="Q2_1" value="2"><label for="Q2_1">はい</label> <input type="radio" name="Q2" id="Q2_2" value="0"><label for="Q2_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q3" id="Q3_1" value="2"><label for="Q3_1">はい</label> <input type="radio" name="Q3" id="Q3_2" value="0"><label for="Q3_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q4" id="Q4_1" value="2"><label for="Q4_1">はい</label> <input type="radio" name="Q4" id="Q4_2" value="0"><label for="Q4_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q5" id="Q5_1" value="2"><label for="Q5_1">はい</label> <input type="radio" name="Q5" id="Q5_2" value="0"><label for="Q5_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q6" id="Q6_1" value="2"><label for="Q6_1">はい</label> <input type="radio" name="Q6" id="Q6_2" value="0"><label for="Q6_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q7" id="Q7_1" value="2"><label for="Q7_1">はい</label> <input type="radio" name="Q7" id="Q7_2" value="0"><label for="Q7_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q8" id="Q8_1" value="2"><label for="Q8_1">はい</label> <input type="radio" name="Q8" id="Q8_2" value="0"><label for="Q8_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q9" id="Q9_1" value="2"><label for="Q9_1">はい</label> <input type="radio" name="Q9" id="Q9_2" value="0"><label for="Q9_2">いいえ</label> <br><br> <li>aaaaaaaaaaaaa<br> <input type="radio" name="Q10" id="Q10_1" value="2"><label for="Q10_1">はい</label> <input type="radio" name="Q10" id="Q10_2" value="0"><label for="Q10_2">いいえ</label> </ol> <center> <p><font size="+1" color="#FF0000"><b>採点!!</b></font></p> <input type="text" name="judge" value="0" SIZE="10"> <input type="button" value="採点する" onClick="calc(this.form);window.open('kekka.html','windowname');"> </p></center> </form> はいが2点、いいえが0点とします。 この記述方法だと、テキストボックスに点数の合計が記載されてしまいます。 別ページのテキストボックス内に点数の合計を呼び出したいのですが、どうすればいいのでしょうか。 出来れば呼び出す際のソースコードなどもすべて記載していただけるとありがたいです。 ※ページの内容で中身が変わるわけではなく、点数の結果を表示したいです。 ※呼び出す際のコードも記載していただけたらありがたいです ※結果のページをkekka.htmlとします。 初心者なのでどうしたらいいのか分かりません。よろしくお願いします。

  • 他ページの入力内容を出力するには

    PHPあまり詳しくないです。 会員登録ページなるものを作っています。 register.phpというページで入力した会員情報をconfirm.phpというページで最終確認させたいのですが、その際に入力した情報がconfirm.phpに反映されません。 regiser.php <?php $a = (!empty($_POST['name'])); $b = (!empty($_POST['email'])); $c = (!empty($_POST['password'])); $d = (!strlen($_POST['password']) < 4); if (isset($_POST['check'])) { if ($a && $b && $c && $d) { header('Location: confirm.php'); } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> </head> <body> <h3>新規登録</h3> <form method="POST" action=""> <div class="container"> <label for="name">ユーザ名(20文字以内)</label> <br /> <input type="text" id="name" name="name" maxlength="20" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['name'])) { print('※ユーザ名を入力してください'); } } ?> <br /><br /> <div class="container"> <label for="email">メールアドレス(100文字以内)</label> <br /> <input type="text" id="email" name="email" maxlength="100" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['email'])) { print('※メールアドレスを入力してください'); } } ?> <br /><br /> <div class="container"> <label for="password">パスワード(4文字以上20文字以内)</label> <br /> <input type="password" id="password" name="password" maxlength="20"/> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['password'])) { print('※パスワードを入力してください'); } elseif (strlen($_POST['password']) < 4) { print('※パスワードは4文字以上で入力してください'); } } ?> <br /><br /> <input type="submit" name="check" value="確認する" /> </form> </body> </html> confirm.php <?php $a = (!empty($_POST['name'])); $b = (!empty($_POST['email'])); $c = (!empty($_POST['password'])); $d = (!strlen($_POST['password']) < 4); if (isset($_POST['check'])) { if ($a && $b && $c && $d) { header('Location: confirm.php'); } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> </head> <body> <h3>新規登録</h3> <form method="POST" action=""> <div class="container"> <label for="name">ユーザ名(20文字以内)</label> <br /> <input type="text" id="name" name="name" maxlength="20" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['name'])) { print('※ユーザ名を入力してください'); } } ?> <br /><br /> <div class="container"> <label for="email">メールアドレス(100文字以内)</label> <br /> <input type="text" id="email" name="email" maxlength="100" /> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['email'])) { print('※メールアドレスを入力してください'); } } ?> <br /><br /> <div class="container"> <label for="password">パスワード(4文字以上20文字以内)</label> <br /> <input type="password" id="password" name="password" maxlength="20"/> </div> <?php if (isset($_POST['check'])) { if (empty($_POST['password'])) { print('※パスワードを入力してください'); } elseif (strlen($_POST['password']) < 4) { print('※パスワードは4文字以上で入力してください'); } } ?> <br /><br /> <input type="submit" name="check" value="確認する" /> </form> </body> </html> できればあまりこの形は変えたくありません…。 action部分をconfirm.phpに変えると、入力値が空だったりするエラー時にconfirm.phpに飛ばないようにする方法が分かりません。 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • チェックボックスの内容が送信出来ません。

    PHPのメールフォームにチェックボックスを追加しましたがうまく送れず頭を抱えています。 お力をお貸しください。 必要だと思われるソースです。 inquiry.html <form action="check_inquiry.php" method="POST"> <p><label for="title">お名前:</label> <input type="text" name="title" size="60"> </p> <p><INPUT type="checkbox" name="check[]" value="資料請求" />資料請求<INPUT type="checkbox" name="check[]" value="至急" />至急<INPUT type="checkbox" name="check[]" value="質問" />質問</p> <br /> <p><label for="massage">メッセージ:</label></p> <p><textarea name="message" cols="50" rows="20"></textarea></p> <p><input type="submit" value="内容の確認"></p> </form> check_inquiry.php <?php $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'], ENT_QUOTES); $m_check = $_POST['check']; ?> ■内容を確認してください。 <br> <form action="send_inquiry.php" method="POST"> <input type="hidden" name="title" value="<?php echo $title; ?>" /> <input type="hidden" name="message" value="<?php echo $message; ?>" /> <input type="hidden" name="check" value="<?php for($i=0; $i<sizeof($m_check); $i++){ echo "【${m_check[$i]}】"; } ?>" /> <br /> お名前: <br /> <?php echo $title; ?> <br /> 問い合わせ内容: <?php for($i=0; $i<sizeof($m_check); $i++){echo "【${m_check[$i]}】"; }; ?> <br /> メッセージ詳細: <br /> <?php // 改行部分にBRタグを埋め込む echo nl2br($message); ?> <br /> <input type="submit" value="お問い合わせ内容の送信"> </form> send_inquiry.php <?php $title = htmlspecialchars($_POST['title'], ENT_QUOTES); $message = htmlspecialchars($_POST['message'],ENT_QUOTES); $m_check = $_POST['check']; //日本語UTF8 mb_language('ja'); mb_internal_encoding('UTF8'); //自動送信<送信元のアドレス $name = '自動送信'; $email = 'メールアドレス'; $header = 'From: '. mb_encode_mimeheader($name) . '<' . $email .'>'; // メール送信 $result = mb_send_mail($email, $title, $message, $header, $m_check); //メール送信の確認 if ($result) { // メール送信の成功 echo '■管理人へ送信しました。'; } else { // メール送信の失敗 echo '■管理人への送信に失敗しました。'; } ?> チェックボックスにチェックを入れないと送信出来ますが チェックを入れると送信に失敗します。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Wordpressにおいてカスタム投稿の読み込み

    Wordpressにて美容系ポータルサイトを作っています。 お店情報のカスタム投稿 口コミのカスタム投稿 の二つ、そしてトップページとの連動を作りたいと思っています。 まずはお店情報にはサロン名やら営業時間やらキャンペーンメニューなどがポストタイプ(salon_posttype)にて入っています。 口コミには行ったサロン名や、感想、名前などがポストタイプ(review_posttype)で入っています。 そこでお店情報のページに、 そのお店の口コミの投稿を表示させたいと思っています。 つまり、review_posttypeにて入れた、'salonname'のキーがそのページのページ名=(サロン名)と同じであれば表示、で行けるかなと構文を書きましたが、ここからがわかません。 <?php query_posts('&post_type=review_posttype'); while(have_posts()) : the_post(); ?> <?php if( get_post_meta(get_the_ID(), 'salonname', true) != '' ):?> ↑↑↑ここを"もしsalonname=今見ているページの題名なら"にしたいです。↑↑↑ <p class="title"><?php echo get_post_meta(get_the_ID(), 'salonname', true);?></p> <p class="naiyou"><?php echo get_post_meta(get_the_ID(), 'review_naiyou', true);?></p> <p class="detail"><a href="<?php the_permalink() ?>">詳しくはこちら</a></p> <?php endif;?> <?php endwhile; ?> <?php wp_reset_query(); ?> どこをどうしたらいいでしょうか?そもそもここまでも合っていますか?

    • 締切済み
    • PHP

専門家に質問してみよう