質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1121閲覧

PHP リンクと配列について

hiro0208

総合スコア75

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/14 05:33

編集2017/04/14 16:13

リンクをクリックしたら、パラメータが変わって、出力される画像も切り変わる処理を
おこないたいです。

今、リンクをクリックすると、パラメータが上手く取れていなく、
phpの記述の仕方、$_GET,$_SERVER,変数の使用方法などを見直しているのですが、
ご教授いただける方おりましたら、アドバイスやご指摘をお願いいたします。

雑な記述と質問になってしまい申し訳ありません。

php

1<?php 2$array_category = array('1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg'); 3shuffle($array_category); 4?> 5<!doctype html> 6<html> 7<head> 8<meta charset="UTF-8"> 9<title>sample</title> 10</head> 11<body> 12<?php 13$category = 'A'; 14echo '<table border="1" width="800px">' . "\n"; 15echo '<tr>' . "\n"; 16echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['0'] . '" width="190"></a></td>' . "\n"; 17echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['1'] . '" width="190"></td>' . "\n"; 18echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['2'] . '" width="190"></td>' . "\n"; 19echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['3'] . '" width="190"></td></tr>' . "\n"; 20echo '<tr>' . "\n"; 21echo '<td width="200"><img src="' . $category . '/' . $array_category['4'] . '" width="190"></td>' . "\n"; 22echo '<td colspan="2" align="center">' . "\n"; 23echo '★<a href=" . $_SERVER['PHP_SELF'] . '?A=1">A</a>&nbsp;&nbsp' . "\n"; 24echo '★<a href="' . $_SERVER['PHP_SELF'] . '?B=2">B</a>&nbsp;&nbsp' . "\n"; 25echo '★<a href="' . $_SERVER['PHP_SELF'] . '?C=3">C</a>&nbsp;&nbsp' . "\n"; 26echo '</td>' . "\n"; 27echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['5'] . '" width="190"></td></tr>' . "\n"; 28echo '<tr>' . "\n"; 29echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['6'] . '" width="190"></td>' . "\n"; 30echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['7'] . '" width="190"></td>' . "\n"; 31echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['8'] . '" width="190"></td>' . "\n"; 32echo '<td width="200" align="center"><img src="' . $category . '/' . $array_category['9'] . '" width="190"></td>' . "\n"; 33echo '</tr>'; 34echo '</table>'; 35if ($_GET['A'] == 1) { 36 $category = 'A'; 37} 38else if ($_GET['B'] == 2){ 39 $category = 'B'; 40} 41else if ($_GET['C'] == 3){ 42 $category = 'C'; 43} 44?> 45</body> 46</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/04/14 05:38

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
hiro0208

2017/04/14 05:41 編集

具体的にかけていなく。すみません。見直します。
guest

回答1

0

ベストアンサー

設定するところと表示部分が逆じゃないとうまく行かないでしょう。
基本的にプログラムを上から下に実行されます。

php

1$category = 'A'; 2if ($_GET['A'] == 1) { 3 $category = 'B'; 4} 5else if ($_GET['B'] == 2){ 6 $category = 'B'; 7} 8else if ($_GET['C'] == 3){ 9 $category = 'C'; 10} 11 12echo '<table border="1" width="800px">' . "\n"; 13echo '<tr>' . "\n"; 14// 省略します。 15echo '</tr>'; 16echo '</table>';

あと、echoがずらずら書かれている部分も冗長なので、ループなどで繰り返せるところは繰り返すようにしたり、別にfunctionを使ったりして楽をしましょう。

ヒアドキュメントなんかも使うと見やすくなります。

投稿2017/04/14 05:39

編集2017/04/14 05:52
shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問