hrefで遷移した画面に値を渡す一番シンプルな方法

hrefで遷移した画面に値を渡す一番シンプルな方法

画面遷移時に値を渡す方法がわからない!
今回は、かんたんで一番でシンプルな方法を紹介します。
”HTMLのhrefを押された時に値を渡す方法”があるんです。
あるリンクを押された時に、固定で渡す値が決まっているときはこの方法が使えます。

「いやいや、値渡しならPHPの”SESSION”でしょ?違うの?」
値を渡す方法はSESSIONもあります。
こちらは、変数など可変の値を渡すことができる方法です。
僕はPHPでボタンを押した時の処理を色々書いてから、最後にSESSIONで値を渡す使い方をしています。
こんなSESSIONで値を渡す方法は下の記事で紹介しています。

さて、今回のhrefで遷移した画面に値を渡す一番シンプルな方法を紹介していきます。

リンクに値を埋め込む

例えばリンク先のページをhoge.phpとしましょう。
このリンク先に”10”を渡したいとします。僕の知っているやり方では2つありリンクに直接この”10”を書き込むことで渡すことができます。つづけて”50”も渡してみます。

パターン1

%5b%5dで渡す

%5b%5dってなに?と思うかもしれませんが[]の事です。これをPHPが変換して読んでくれます。実際には下記のように記述することで”10”を渡してくれます。

<a href="hoge.php?data%5B%5D=10>リンク</a>

ファイル名に続いて、” ?data%5b%5d= ”と書きます。さらに続けて渡したい値を書くだけです。”data”が変数の名前になります。

また2つ以上渡したいときは、続けて書きましょう。

<a href="hoge.php?data%5B%5D=10&data%5B%5D=50">リンク</a>

受け取り

リンク先のhoge.phpに下記のコードを記載するだけで受け取れます。
感覚は前記事のSESSIONと似ています。

<?php
 $data=$_GET["data"];

 echo $data[0];

 echo $data[1];
?>

受け取り側は、$_GETの変数で受け取れます。
配列になっているので、このまま使えます。

パターン2

もっとシンプルに直接受け渡す

<a href="hoge.php?10>リンク</a>

直接、ファイル名に続いて”?”を挟んでから受け渡したい値をいれるだけです。

複数渡したい場合は、カンマで区切って続けて書きましょう。

<a href="hoge.php?10,50>リンク</a>

受け取り

こちらは渡す方はシンプルでしたが、受け取りが一手間入ります。

explode関数を使ってカンマで区切り、順番に配列に格納してあげる必要があります。
$_SERVER[‘QUERY_STRING’]は、URLの”?”の後に付けられた文字列を取得できます。

$data= explode(",",$_SERVER['QUERY_STRING']);
echo $data[0];
echo $data[1];

好きな方を使いましょう

上記で紹介した方法、どちらも”10”と”50”を受け渡ししています。
この方法を使うとHTMLのhrefをつかって、値を引き渡すことができますのでぜひ試してみてください。

HTMLカテゴリの最新記事