PHPでのエラー解決方法

このQ&Aのポイント
  • PHPでのエラーが発生しています。エラー解決のための方法を教えてください。
  • PHPのコードにエラーがあり、正しく動作しません。どのように修正すれば良いでしょうか?
  • PHPのコードに問題があり、エラーが発生しています。解決方法をお願いします。
回答を見る
  • ベストアンサー

PHP

PHPで <?php for($i = 0; $i <= 23; $i++){ // $nhour が $i と等しいなら selected を宣言 等しくなければ空文字 $isSelected = $nhour == $i ? 'selected' : ''; echo "<option value=\"$i\" $isSelected>$i</option>" . "\n"; } ?> を含むにしたい <?php for($i = 0; $i <= 23; $i++){ // $nhour が $i と等しいなら selected を宣言 等しくなければ空文字 $isSelected = strstr($nhour,$i) ? 'selected' : ''; echo "<option value=\"$i\" $isSelected>$i</option>" . "\n"; } ?> こうするとエラーになる。どうしたらいいですか?

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5061/13226)
回答No.1

strstr($nhour,$i) の戻り値は $nhour のうち $i で指定した文字より後ろの文字が全て返させるので、真偽値として評価できない場合があるのでエラーになっているのではないでしょうか。 preg_match など真偽値として評価できる戻り値の関数を使うか、strstr に拘るなら三項演算子をやめて普通に if をつかった方がいいんじゃないですか。

akio123
質問者

お礼

ありがとうございます^_^

関連するQ&A

  • PHP

    HTML文ですが、これをPHPでループで回して無駄なコーディングを直したい。 どうしたらいいですか? <select name="nhour"> <option value="0" <?php if($nhour == '0') echo"selected"; ?>>0</option> <option value="1" <?php if($nhour == '1') echo"selected"; ?>>1</option> <option value="2" <?php if($nhour == '2') echo"selected"; ?>>2</option> <option value="3" <?php if($nhour == '3') echo"selected"; ?>>3</option> <option value="4" <?php if($nhour == '4') echo"selected"; ?>>4</option> <option value="5" <?php if($nhour == '5') echo"selected"; ?>>5</option> </select>

    • ベストアンサー
    • PHP
  • PHP

    PHPで無駄なコーディングをしない為、ループでまわしたいのですが関数が入り、ややこしくなっています。どうしたらいいですか? <select name="nminute"> <option value="0" <?php if(strstr($nminute,'0')) echo"selected"; ?>>0</option> <option value="1" <?php if(strstr($nminute,'1')) echo"selected"; ?>>1</option> <option value="2" <?php if(strstr($nminute,'2')) echo"selected"; ?>>2</option> <option value="3" <?php if(strstr($nminute,'3')) echo"selected"; ?>>3</option> <option value="4" <?php if(strstr($nminute,'4')) echo"selected"; ?>>4</option> <option value="5" <?php if(strstr($nminute,'5')) echo"selected"; ?>>5</option> <option value="6" <?php if(strstr($nminute,'6')) echo"selected"; ?>>6</option> <option value="7" <?php if(strstr($nminute,'7')) echo"selected"; ?>>7</option> <option value="8" <?php if(strstr($nminute,'8')) echo"selected"; ?>>8</option> <option value="9" <?php

    • ベストアンサー
    • PHP
  • PHP タイムスタンプ

    タイムスタンプで値を取得して、比較するプログラムなのですが、なぜか $time = mktime(0, 0, $_POST['hh'], $_POST['dd'], $_POST['mm'], $_POST['yyyy']); の値が”-1”で返ってきてしまいます。 何故でしょうか? <?php echo "<select name=\"yyyy\">"; for ($i = 2010; $i < 2012; $i++) { $selected=$i==$_REQUEST["yyyy"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 年 "; echo "<select name=\"mm\">"; for ($i = 1; $i < 13; $i++) { $selected=$i==$_REQUEST["mm"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 月 "; echo "<select name=\"dd\">"; for ($i = 1; $i < 32; $i++) { $selected=$i==$_REQUEST["dd"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 日 "; echo "<select name=\"hh\">"; for ($i = 0; $i < 24; $i++) { $selected=$i==$_REQUEST["hh"]?" selected":""; echo "<option value=\"{$i}\"{$selected}>{$i}</option>\n"; } echo "</select> 時 <br />"; $time = mktime(0, 0, $_POST['hh'], $_POST['dd'], $_POST['mm'], $_POST['yyyy']);

    • ベストアンサー
    • PHP
  • phpの値の受け渡し方法について

    b.phpの <dl> <form action='a.php' method='post'> <dt>生年月日</dt> <dd> <select name="Y"> <?php $start = 1920; //始まりの年 $end = 2020; //終わりの年 $select = 2000; //最初に選択された状態で表示したい年 for ($i=$start;$i<=$end;$i++){ if($i==$select){ echo "<option value=\"$i\" selected=\"selected\">$i</option>\n"; }else{ echo "<option value=\"$i\">$i</option>\n"; } } ?> </select> 年 <select name="M"> <?php for ($i=1;$i<=12;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 月 <select name="D"> <?php for ($i=1;$i<=31;$i++){ echo "<option value=\"$i\">$i</option>\n"; } ?> </select> 日 </dd> </dl> <input type="submit" value="送信する" /> </form> というコードで取得した生年月日をa.phpに渡し、表示させます。 a.phpファイルで <?php print('誕生日は:' . ($_REQUEST['Y']. '年',ENT_QUOTES)); print(($_REQUEST['M']. '月',ENT_QUOTES)); print(($_REQUEST['D']. '日',ENT_QUOTES)); ?> と、コードを入力しましたら、 誕生日は:1985年1月31日 という値を受け取り、ブラウザ上で表示することはできたのですが、他のコードで表示する方法はないのかと考えております。 もし、他のコードで表示できる方法がありましたらぜひ教えてください。お願いします。

    • ベストアンサー
    • PHP
  • PHPカレンダーについて

    今カレンダーを作成している段階です。 http://w1.nirai.ne.jp/freeze/main/file11.html ↑このサイトのプログラムを参考にしているんですが、 <html> <head> <title>カレンダー</title> </head> <body> <form action="<?php echo $_SERVER["PHP_SELF"]?>" method="POST"> <select name="year"> <?php $cnt = 1970; while($cnt<2038){   if($cnt==date(Y)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {  echo "<option value='$cnt'>$cnt</option>";  } $cnt++; } ?> </select> <select name="month"> <?php $cnt=1; while($cnt<13){   if($cnt == date(n)){   echo "<option value='$cnt' selected>$cnt</option>";   } else {   echo "<option value='$cnt'>$cnt</option>";   } $cnt++; } ?> </select> <input type="submit" value="作成!"> </form> </body> </html> このPHPプログラムを実行してもエラーが消えません。 どこが間違っているのかどなたか教えてください。

    • 締切済み
    • PHP
  • このPHP記述を修正願います

    にわかプログラマーです。 PHP記述に詳しい方、ひとつ教えてください。 ■現在、下記PHP記述があるとして、これをHTML出力すると echo "<tr><td>日付:$date</td></tr><tr><td><select name=\"ayear\">"; for($i = 2002; $i <= $last_year; $i++){ echo "<option value=" . $i . (($i == $year) ? ' selected' : '') . ">" . $i . "</option>"; } ■こう出力されてしまいます。 <option value=2013 selected>2013</option> これを ■下記のように出力できるようにしたい <option value="2013" "selected">2013</option> (HTML記述として""で閉じられていないのを解決したい) 上記PHPを修正したいのですが、どなたか記述を修正していただけないでしょうか。 不躾な質問で申し訳ないですがよろしくお願い致します。

    • ベストアンサー
    • PHP
  • phpでの住所の処理について

    初めまして。 まだまだphpを初めて間もないのですが、勉強がてらphpで登録内容の変更フォームを作っています。 ただ、どうしても住所関連の部分で上手く処理が出来ずに悩んでいまして、 よろしければお知恵を拝借できないでしょうか? ↓ココから実際のコード----------------------------------------------------------------- <select name="usaddress" id="usaddress" > <option value="">お住まいの都道府県を選択してください</option> <? for ($i=01;$i<53;$i++) { if(substr($i + 100 , 1 , 2) == $usaddress){ echo '<option value="' . substr($i + 100 , 1 , 2) . '" selected="selected">' . $selectprefecture_set[substr($i + 100 , 1 , 2)] . '</option>' . "\n"; }else{ echo '<option value="' . substr($i + 100 , 1 , 2) . '">' . $selectprefecture_set[substr($i + 100 , 1 , 2)] . '</option>' . "\n"; } } ?> </select> ↑ココまで実際のコード----------------------------------------------------------------- $usaddressには登録者の都道府県コードが入っています。 DBから呼び出して当該ユーザーの都道府県コードが入ってきます。 $selectprefecture_setには、連想配列で都道府県名を突っ込んでいます。 コレを登録内容の変更フォームに組み込むと、 セレクトボックスの中身は表示されるんですが、 DBから取ってきた値がデフォルト値で表示されないのです・・・。 DBからはキチンと値を持ってきているのは確認できていますし、 正直どこが悪いのかすらわかっていません・・・。 宜しくお願い致します。

    • 締切済み
    • PHP
  • PHP

    PHPで <p>曜日</p> <p> <input type="checkbox" name="youbi[]" value="1" <?php if(strstr($result[4],'1')) echo"checked"; ?>>月 <input type="checkbox" name="youbi[]" value="2" <?php if(strstr($result[4], '2')) echo"checked"; ?>>火 <input type="checkbox" name="youbi[]" value="3" <?php if(strstr($result[4],'3')) echo"checked"; ?>>水 <input type="checkbox" name="youbi[]" value="4" <?php if(strstr($result[4],'4')) echo"checked"; ?>>木 <input type="checkbox" name="youbi[]" value="5" <?php if(strstr($result[4],'5')) echo"checked"; ?>>金 <input type="checkbox" name="youbi[]" value="6" <?php if(strstr($result[4],'6')) echo"checked"; ?>>土 <input type="checkbox" name="youbi[]" value="0" <?php if(strstr($result[4],'0')) echo"checked"; ?>>日 </p> <p>時間</p> <p> <input type="submit" value="設定" /> とやると日曜日を選択してsubmitするとチェックが外れます。なぜでしょうか?

    • ベストアンサー
    • PHP
  • POSTの配列名に変数を使用したい

    お世話になります。 ↓このあたりを見てみたのですが解決せず。。。 http://ml.php.gr.jp/pipermail/php-users/2002-February/005209.html --質問内容-------------------------------------------------------------------- ●$_POSTの配列名に変数を使いたい場合は、どのように書くのが正しいのでしょうか? ------------------------------------------------------------------------------ --状態------------------------------------------------------------------------ <? 1 for($a = 1; $a < 11; $a++) { 2 echo '<select name="item' . $a . '_count">' . "\n"; 3 for($i = 0; $i < 11; $i++) { 4 echo '<option value="' . $i . '">' . $i . '</option>' . "\n"; 5 } 6 echo "</select>\n"; 7 } ?> 上記は入力フォームの一部で、セレクトボックスを10個ほど吐き出しています。 このフォームの他の項目でエラーがあった際に、 選択していた値がページロード時に選択されるようにしたいと思っています。 その際は、 if ($i === $_POST[item . $a . _count]){ echo 'selected="selected"'; } か、 if ($i === $_POST[item . $a . _count]) echo 'selected="selected"'; を4行目の辺りに加えれば良いかなと思い、 付け加えてみるのですが、シンタックスエラーが出てしまい、 訳がわからなくなってしまいました。 ------------------------------------------------------------------------------ お手数ですが、ご教授いただければ幸いです。

    • ベストアンサー
    • PHP
  • プルダウンからの日付取得処理

    現在、PHP+SQLiteでWEBページを作成しております。 (初心者です。) フォームに日付をプルダウンで選択出来るように、 $utime = time()+$jisa*3600; $today = getdate($utime); //年のセレクトボックス(±2年) echo "<select name=year>\n"; for ($y=$today[year]+2; $y>=$today[year]-2; $y--) { $sel = ($y == $today[year]) ? " selected" : ""; echo "<option value=\"$y\"$sel>$y</option>\n"; } echo "</select>/\n"; //月のセレクトボックス(12-1月) echo "<select name=mon>\n"; for ($m=12; $m>=1; $m--) { $sel = ($m == $today[mon]) ? " selected" : ""; echo "<option value=\"$m\"$sel>$m</option>\n"; } echo "</select>/\n"; //日のセレクトボックス(31-1日) echo "<select name=day>\n"; for ($d=31; $d>=1; $d--) { $sel = ($d == $today[mday]) ? " selected" : ""; echo "<option value=\"$d\"$sel>$d</option>\n"; } echo "</select>\n"; というコードを記述しております(これはネットを参考にしました)。 これでプルダウンの表示自体は出来たのですが、実際にここから値を取得するにはどうすれば良いかが分かりません・・・。 ご教授お願いいたします。

    • ベストアンサー
    • PHP