dポイントプレゼントキャンペーン実施中!

参考書「問題」で質問があります。
問 題
 次のような(添付画像参照)「100個のラジオボタンから選択して年齢データ
を送信するフォーム」(radio.php)と、それを「受信して、年齢を含むメッセ
ージを表示するPHPスクリプト」(radio_uke.php)を作成してください。

以上ですが以下が問題の回答のPHPプログラムです。
 そこで質問します。
送信側フォームのPHP「radio.php」です。
 その中に「ブロックレベル要素である「div」で質問がします。
質問
 print "<div>"; ですが なくても まったくプログラムの機能には影響は
ないのですが print "<div>";~print "</div>までブロック範囲内の
その中に「文字列」 があれば 文字列を表示しなさいとの意味だと思います。

 それが正しければ、ブロック内に「print "<input type='radio'…」
また 「print」が出てきます。 なんで 最初にprint "<div>";
と宣言しているにもかかわらず、「print "<input type='radio'…」
と また print で宣言させないと機能しないのでしょうか!?
 
よろしくお願いいたします。
  
ファイル名「radio.php」
----------------
<?php
$i=1;
$c=1;
print "<div>";
while($i<=100){
print "<input type='radio' name='r' value='$i'>$i ";
if($c==10){
print "</div><div>";
$c=0;
}
$i++;
$c++;
}
?>

<input type="submit" value="送信">
</div>
</form>
--------------

受信側のPHPスクリプト radio_uke.php です。
--------------
<?php
print "あなたの年齢は".$_POST["r"]."歳なのですね";
?>
送信側ですが

「printが「ダブルスタンダード」になら」の質問画像

質問者からの補足コメント

  • へこむわー

    どうもすみません!
    参考書の問題回答の、ファイル名「radio.php」ですが
    以上は 間違いで 以下が正解でした。

    以下の冒頭の<form~始まる 2行を追加しただけですが
    転機するのを忘れていました。

    ファイル名「radio.php」
    ---
    <form method="POST" action="radio_uke.php">
    あなたの年齢を選択して、送信ボタンをクリックしてください。<br>

    <?php
    $i=1;
    $c=1;

    while($i<=100){
    print "<input type='radio' name='r' value='$i'>$i ";
    if($c==10){
    print "</div><div>";
    $c=0;
    }
    $i++;
    $c++;
    }
    ?>

    <input type="submit" value="送信">
    </div>
    </form>

      補足日時:2021/12/22 03:45

A 回答 (2件)

>print "<div>";~print "</div>までブロック範囲内の


>その中に「文字列」 があれば 文字列を表示しなさいとの意味だと思います。

違うとおもいますけど・・
print "~";
は単に、PHPスクリプトが "~" をHTTPに出力するだけです。
HTTPは~が<div>であれば、ブロック開始の印とした処理を開始し
</div>であれば、ブロック終了の印としたブロック後始末処理をするわけです。

>なくても まったくプログラムの機能には影響はない
のは、ブロックの処理の有無が表示に影響しないというだけで、処理内容(プログラムの機能)は明らかに違いますよね。
    • good
    • 1
この回答へのお礼

ご回答くださいましてありがとうございす。
そうですね このプログラムにはHTMLタグがないですね!
「やさしいPHP第3段版」の参考書にはちゃんとHTMLは
ありますね!
 しかし現在使用している
「基礎からのMySQL第3版」HTMLは省略しています。
と書いてあるので、ついうっかり HTMLタグ省いて、試していまが
 ちゃんと動いていますね!?
なぜ 動くか理由は分かりませんが一個人の意見として
「PHP側もしくはブラウザがエラーを自動で修復しているから」
だと 勝手に思っています。
 私の手持ちの参考書には<div>はCSSにしか出てこないタグ
でした。ただ単に「ブロック要素」のみの意味しかない
 実戦経験のない私なので、他詳いことは分かりません!

今後とも宜しくお願い致します。

お礼日時:2021/12/22 04:03

宣言ではなく、関数として利用しているので。


求められた時に、求めている関数を利用しているに過ぎません。
    • good
    • 1
この回答へのお礼

早々ご回答くださいましてありがとうございます。
関数なんですね!
 了解です。
助かります。

お礼日時:2021/12/21 07:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!