• ベストアンサー

PHPプログラミングです。

PHP言語の質問です。 ドロップダウンボックスの中身の意味がわかりません。 具体的には $i=10; while($i<=70){ print(<’option value="'.$i.'">'.$i.'歳</option>’); $i++; } このプログラムなんですが、 3行目の(<’option value="'.$i.'">'.$i.'歳</option>’)の中にある、 "'.$i.'" と '.$i.'歳 の両端ある”” ’’ .. '' がなぜ必要なのかわかりません。 それぞれ、なんのためにあるのか教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • 1minn
  • ベストアンサー率57% (52/90)
回答No.2

初めのクォートの位置がちょっとずれてますね。 print(<'option value="'.$i.'">'.$i.'歳</option>'); じゃなくて print('<option value="'.$i.'">'.$i.'歳</option>'); ですよね。 出力したものをみればわかると思いますが、 value= の後のダブルクォートは画面に出力されていますよね? 1.最初のシングルクォートから次のシングルクォートまでが文字列として出力されます。 2.その後の$iと、最初の文字列を結合するのが、両者の間にあるドットです。 3.その後は同じ要領で文字列と変数$iをくっつけてるだけです。 他の方の回答のように分けて出力するのもアリですし、今回のような書き方もアリです。 プログラムソースとしては今回のような書き方が普通だと思います。 また、ダブルクォートで文字列を出力すれば、結合演算子(ドット)はいらなくなります。 こんな感じ。 print("<option value=\"$i\">$i歳</option>"); どっちが見やすいと感じるかはその人次第だし、これがアンカータグでJSのイベントとか呼ぶ時に引数にシングルクォートついいたりして、かえって見づらい感じにもなるので、適時見やすい書き方でよいかなと思います。 余計なお世話ですが、他人が読んでも分かりやすいコードをお互い心がけましょう。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

シングルクオートで囲まれた範囲はprint関数で出力する文字列です。 出力する文字列と変数の間にあるピリオドは結合演算子と言って、文字列と文字列をくっつけて一つの文字列にするためのも物です。 書かれているプログラムのprint関数の部分は小分けにすると以下のようになります。 これでは長ったらしいので、一行にまとめて書いているだけです。 print ('< option value="'); print ($i); print ('">'); print ($i); print (''歳</option>');

参考URL:
http://www.php.net/manual/ja/language.operators.string.php
全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpプログラムの書き方について

    phpは<html>~</html>の中に記載するものなのでしょうか? それともphpプログラムの中にhtmlを記載するのでしょうか? ラジオボタンを10個表示するプログラムを書いたのですが、 実際にブラウザに表示されたものは以下の様な状態になってしまいました。 ------------------------------------------------------------- 該当する年齢を選んでください。 ?php> $i=1; while($i==10){ print "$i "; $i++; } ?> 送信 --------------------------------------------------------------- ソースコード radio.php <html> <head> <title>年齢確認</title> </head> <body> 該当する年齢を選んでください。 <br> <hr> <form method="post" action="radio_uke.php"> ?php> $i=1; while($i==10){ print "<input type='radio' name='r' value'$i'>$i "; $i++; } ?> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • 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の値の受け渡し方法について

    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ロジックで・・・

    PHP4をHTMLに埋め込むロジックを書いてます。 DBはpostgresqlです。 <? print("<SELECT NAME=sendgroup>"); print("<option value=name>グループ一覧"); for($i = 0; $i < row; $i++){ $str = pg_result($res,$i,0); print("<option value=$str>$str"); } print("</SELECT>"); ?> DBから取り込んだデータをrow(行数)分まわして HTMLのセレクトオプション表示をしたいのですが 表れません。$strにDBから取り込んだデータが 入ってます。 普通にprint($str)データの値はちゃんととれています。 HTMLのselect文でなにか規約があるのでしょうか?

    • 締切済み
    • PHP
  • php プルダウンメニュー

    メールフォームにて下記を作成しています。 <form action="confirm.php" method="post"> <select> <option>09:00</option> <option>09:30</option> <option>10:00</option> <option>10:30</option> </select> ~ <select> <option>11:00</option> <option>11:30</option> <option>12:00</option> <option>12:30</option> </select> </form> これを <?php //スタート時間の選択 print '<select name="start_time">' . "\n"; $start = date('Y') -0; $end = date('Y') +1; for ($i = $start; $i <= $end; $i++) { print '<option value="' . sprintf("%04d",$i) . '">' . sprintf("%04d",$i) . '</option>' . "\n"; } print '</select>~' . "\n"; //エンド時間の選択 print '<select name="end_time">' . "\n"; for ($i = 01; $i <= 31; $i++) { print '<option value="' . sprintf("%02d",$i) . '">' . sprintf("%02d",$i) . '</option>' . "\n"; } print '</select>' . "\n"; ?> の形のように記述できないでしょうか? 年月日の記述のためいろいろとおかしなとこがありますが、変更点等がございましたら、ご教授お願いします。

    • ベストアンサー
    • PHP
  • PHP MySQL を使ってリストボックスを作りたい

    PHPで、MySQLよりSelectしたデータをリストボックスにしたくて、 コーディングしていますが、本を読みながら見よう見まねでつくってますが、 うまくいきません。 現象としては、IEで呼び出すと、一番上にrequireしたfanctionが そのまま記述されて出てきます。 そのほかは、その下にうまく表示されています。 lib.phpをinput1.phpで呼び出して使っています。 lib.php >------------------------------ function make_SyaName (){ $sql = "select * from Syain"; print $sql; $result = mysql_query( $sql ) ; while ( $syain = mysql_fetch_array ( $result ) ) { print "<option value=" . ${syain['SyaNo']} . ">" . ${syain['SyaName']} . "</option>"\n; } } >------------------------------ input1.php >------------------------------ 省略・・・ <select name="TanNo"><option value=>担当者<? make_SyaName () ?> ・・・省略 >------------------------------ 初歩的な質問で恐縮ですが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php言語にて

    <?php print "<form><table border=\"1\" cellpadding=\"5\">\n"; for($i=0;$i<6;$i++){ if($i==0){print "<tr><td>&nbsp;</td><th>月曜日</th><th>火曜日</th><th>水曜日</th><th>木曜日</th><th>金曜日</th></tr>\n"; continue; } print "<tr><td align=\"center\">$i<br>限</td>"; for($j=1;$j<6;$j++){ print "<td><select name=\"kamoku$j$i\"><option value=\"\"> <option value=\"科目A\">科目 A<option value=\"科目B\">科目 B<option value=\"科目C\">科目 C<option value=\"科目D\">科目 D<option value=\"科目E\">科目 E<option value=\"科目F\">科目 F<option value=\"未定\">未定 </select> </td>"; } print "</tr>\n"; } print "</table>\n</form>"; ?> これにボタンを付けて、ボタンを押したら操作をできなくするにはどうすればいいですか? 保存のような機能を付けたいのですが… なにか参考になるサイトはありませんか?

    • 締切済み
    • PHP
  • PHP初心者です。

    PHP初心者です。カレンダースケジュールを作りたいのですが、以下について質問させていただきます。 selectボタンで2010~2020までのカレンダーを表示させることは出来たのですが、スケジュール欄にテキストボックスを作り、スケジュールを保存したいのですが、この部分でつまづいています。 PHPを勉強し始めて日が浅いのですが、宜しくお願い致します。 どなたかご教授下さい。 <html> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <body> <form method="post" action="<? print($PHP_SELF); ?>"> <select name="year"> <? for($nen=2010 ; $nen<2020; $nen++){ $kotosi=date("Y"); if($kotosi==$nen){ print("<option value='".$nen."' selected>".$nen."</option>"); }else{ print("<option value='".$nen."'>".$nen."</option>"); } } ?> </select> 年 <select name="month"> <? for($tuki=1 ; $tuki<13; $tuki++){ $kongetu=date("n"); if($kongetu==$tuki){ print("<option value='".$tuki."' selected>".$tuki."</option>"); }else{ print("<option value='".$tuki."'>".$tuki."</option>"); } } ?> </select> 月 <input type="submit" value="表示"> </form> <table border> <tr><th>日付</th><th>曜日</th><th>スケジュール</th></tr> <? $year=$_POST["year"]; $month=$_POST["month"]; $wstr=array('日','月','火','水','木','金','土'); for($i=1;checkdate($month,$i,$year);$i++){ $t=mktime(0,0,0,$month,$i,$year); $w=date("w",$t); print("<tr><td>".$i."</td><td>".$wstr[$w]."</td><td><input type='text' size='30'><input type='submit' value='Buttom'></td></tr>"); } ?> </table> </body> </html>

    • ベストアンサー
    • PHP
  • phpのリンクについて

    <?php print "<form><table border=\"1\" cellpadding=\"5\">\n"; for($i=0;$i<6;$i++){ if($i==0){print "<tr><td>&nbsp;</td><th>月曜日</th><th>火曜日</th><th>水曜日</th><th>木曜日</th><th>金曜日</th></tr>\n"; continue; } print "<tr><td align=\"center\">$i<br>限</td>"; for($j=1;$j<6;$j++){ print "<td><select name=\"kamoku$j$i\"><option value=\"\"> <option value=\"科目A\">科目 A<option value=\"科目B\">科目 B<option value=\"科目C\">科目 C<option value=\"科目D\">科目 D<option value=\"科目E\">科目 E<option value=\"科目F\">科目 F<option value=\"未定\">未定 </select> </td>"; } print "</tr>\n"; } print "</table>\n</form>"; ?> (1)プルダウンではなく、リンクを表の中に入れる。 (2)リンク先に教科がいくつかあって、その中から教科を選択する (3)その選択した教科を表に反映させる。 上記のようなことをしたいんですけど、どうすればいいかわかりません。 どうかよろしくお願いします。

    • 締切済み
    • 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