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

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

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

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

Q&A

解決済

2回答

1677閲覧

PHP リンクに入れている、クエリのパラメータの値を増やすには?

hiro0208

総合スコア75

PHP

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

0グッド

0クリップ

投稿2017/05/22 13:55

編集2017/05/22 13:56

php

1<!doctype html> 2<html> 3<head> 4<meta charset="UTF-8"> 5<title>リンク</title> 6</head> 7<body> 8<a href="<?php echo $_SERVER['PHP_SELF']; ?>?**a=1**">リンク</a> 9<?php 10if(isset($_GET['a'])) { 11 $_GET['a']; 12 echo $_GET['a']; 13} 14?> 15</body> 16</html>

パラメータを?a=1"が
リンクをクリックすると1ずつ増えるような記述は、どのようにすれば良いでしょうか?
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

php

1<?php 2ini_set('display_errors', true); 3error_reporting(E_ALL); 4 5function h($string) 6{ 7 return htmlspecialchars($string, ENT_QUOTES, 'utf-8'); 8} 9 10$arr = []; 11$a = filter_input(INPUT_GET, 'a'); 12$arr['a'] = (is_null($a)) ? 1 : $a + 1; 13$href = '?' . http_build_query($arr); 14?><!DOCTYPE HTML> 15<html lang="ja"> 16 <head> 17 <meta charset="UTF-8"> 18 <title></title> 19 </head> 20 <body> 21 <a href="<?= h($href); ?>"><?= h($arr['a']); ?></a> 22 </body> 23</html>

投稿2017/05/22 14:17

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

がると申します。

「1ずつ増える」は、「なにを(どの変数を)」増やしたいのか? によっても大分と回答が違ってくるか、と思うのですが。
リンクの「a=1」が「a=2」「a=3」という風に増やしていきたい、という意味合いであれば。
プログラムとしては

// リクエストパラメタに「a=」があったら // 数値をインクリメント(+1)して // リンクに新しい(インクリメントした)数値を設定する

といった流れで記述が可能かと思いますが、如何でしょうか?
コードを書く時は、上述のように、まず「やりたいこと」を、日本語で(コメントの記述方式で)書いて、思考の整理をしておくと、よいと思います。

上述を元に、簡単にコードを書いてみますので、よかったら参考にしてみてください。

PHP

1<?php 2// リクエストパラメタに「a=」があったら 3if (isset($_GET['a'])) { 4 // 数値をインクリメント(+1)して 5 $a = (int)$_GET['a'] + 1; 6} else { 7 // 設定されていない場合は$aにデフォルトの値を入れておく 8 $a = 1; 9} 10 11// リンクに新しい(インクリメントした)数値を設定する → 出力するURLを先に作っておく 12// XXX $_SERVER['PHP_SELF'] は、XSS対策用に念の為、htmlspecialcharsでエスケープする 13// XXX $aは、ロジック的に「数値しか入らない」が、念のため(或いは"常にエスケープ"の原則を守るため)、rawurlencodeでエスケープする 14$url = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8') . '?a=' . rawurlencode($a); 15 16?> 17<!doctype html> 18<html> 19<head> 20<meta charset="UTF-8"> 21<title>リンク</title> 22</head> 23<body> 24<a href="<?php echo $url; ?>">リンク</a> 25</body> 26</html>

投稿2017/05/22 14:09

gallu

総合スコア506

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

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

hiro0208

2017/05/23 06:15

まず日本語で、やりたいこと書いてみます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問