Help us understand the problem. What is going on with this article?

[学習11日目]PHP初級編 〜関数・フォーム〜

学んだこと

既存の関数の呼び出し方

カウント系:strlen()は文字数、count()は配列の要素数を数えてくれる

カウント系で似ているなと思ったこの2つだが、
strlen()は何かの文字列or変数を、
count()は配列を、
引数に入れるものっぽい。

rand()

これも便利な関数。

index.php
echo rand(1,4);

こうすると、1〜4のランダムな整数を返してくれるみたい。

関数の定義

関数定義の書き方はそんなに難しくない。
戻り値がいらない場合は

index.php
function 関数名(引数1,引数2){
  /*処理*/
}

こんな感じ。
で、
関数名(引数1,引数2);
の形式で呼び出せばOK

戻り値が必要な場合は、

index.php
function 関数名(引数1,引数2){
  /*処理*/
  return 戻り値;
}

って感じで書けばOK。
呼び出し方は戻り値がない時と同じ。

ちなみに引数がなくてもOK
関数名();
みたいに。

フォーム

formタグ

index.php
<form action="url" method="post">
//フォームの内容を書く
</form>

こんな感じでかく。タグの書き方覚えちゃえばHTMLと同じ感じだ。

methodは送信方法で、
送信先("url")に表示したい場合はgetを。

テキストボックス:一行文なら<input>でtype="text"、改行を含む大きいフォームは<textarea>を使う

よく、問い合わせフォームとかで
名前とかEmailを入力する時がある。
それはだいたい一行だから<input>を使う

よく、問い合わせフォームとかで、
フリー記入欄がある。備考とか。
それは<textare>をつ会う

その作り方は、inputタグでtypeをtextに指定すればできる。

まず、一行のテキストボックス。

index.php
<form action="sent.php" method~"post">

  Emailを入力してください
  <input type="text" name="email">

</form>

こうすると、
「Emailを入力してください」
という文字の下に一行分の入力フォームが表示される。

一方、広めの改行ありのテキストボックスは、

index.php
<form action="sent.php" method~"post">

<textarea name="content"></textarea>

</form>

★ここで注意したいのは、
<input>は閉じなくていい。
<textare>は閉じないといけない。
ってこと。

<input>
<input></input>

<textarea>
<textarea></textarea>

ややこし。。。
”inputが例外だな”って覚えるしかないか。

送信ボタンの書き方はHTMLと同じ。

送信ボタンは<form>の中で

index.php
<input type="submit" value="送信">

と書けばOK

フォームのデータの受け取りは$_POST['データ名']で受け取る

フォームで

index.php
<form action="sent.php" method="post">

Emailを入力してください
<input type="text" name="email">

....

</form>

となっていた時、
formタグで送信urlに指定したsent.phpの方では、

sent.php
echo $_POST['email'];

とすると、フォームで入力された情報が受け取れる。

セレクトボックスの作り方も基本HTMLと同じ

index.php
<select>
<option value="apple">りんご</option>
<option value="banana">ばなな</option>
<option value="orange">みかん</option>
</select>

★ここで理解したいのは、
<option></option>で挟まれた文字(ここではひらがなの「りんご」や「」ばなな」や「みかん」)は、
プルダウンの選択に表示される文字にすぎない。

実際にデータとして送信されるのは、valueで指定した、「apple」「banana」「orange」である。

応用

for文などのループを使ってもかける

書き方はこんな感じ

index.php
for($i=1; $i<4; $i++){
  echo '<option value='{$i}'>{$i}</option>';
}

★ポイント
・echoで表示させるので、option全体を' で囲う。
・変数は{}で囲って{$i}で表現
・タグ内の変数は、{$i}をさらに'で囲う。'{$i}'こんな感じ。

progateメモ

現在Lv. 18
bbpnuts21

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした