formで<input type="hidden" name="jump" value="' . $page . '">としているのですが、$pageの値がjumpに入ったり入らなかったりします。
わけわからない説明ですみません。
以下の構成になっているとします。
max.php = おはなしの最新話のナンバーを定義(ここでは4)
index.php = 最新話を表示して「前」「次」のリンクを表示
1.html = 1のおはなし
2.html = 2のおはなし
3.html = 3のおはなし
4.html = 4のおはなし
max.phpの内容:
php
1<?php 2 3$max = 4; 4 5?>
index.phpの内容:
php
1<?php 2include_once('max.php'); 3if (isset ($_GET['jump']) === TRUE) { 4 $page = htmlspecialchars($_GET['jump'], ENT_QUOTES, 'UTF-8'); 5 $current = $page; 6} else { 7 $page = ''; 8 $current = $max; 9} 10?> 11<!doctype html> 12<html> 13<head> 14<meta charset="utf-8"> 15<title></title> 16</head> 17<body> 18<?php 19$file = file_get_contents($current . '.html'); 20print ($file); 21?> 22<table border="0" align="center" width="1000"> 23 <tr> 24 <td width="250"></td> 25 <?php 26 if ($current === 1) { 27 ?> 28 <td width="100"></td> 29 <?php 30 } else { 31 $page = $current - 1; 32 ?> 33 <td> 34 <form name="back_and_next" method="GET" action="index.php" target="_top"> 35 <input type="hidden" name="jump" value="' . $page . '"> 36 <a href="javascript:back_and_next.submit()"><img src="images/back.png"></a> 37 </form> 38 </td> 39 <?php 40 } 41 ?> 42 <td width="300"></td> 43 <?php 44 if ($current === $max) { 45 ?> 46 <td width="100"></td> 47 <?php 48 } else { 49 $page = $current + 1; 50 ?> 51 <td> 52 <form name="back_and_next" method="GET" action="index.php" target="_top"> 53 <input type="hidden" name="jump" value="' . $page . '"> 54 <a href="javascript:back_and_next.submit()"><img src="images/next.png"></a> 55 </form> 56 </td> 57 <?php 58 } 59 ?> 60 <td width="250"></td> 61 </tr> 62</table> 63</body> 64</html>
4.htmlの内容(1~3も同様):
html
1<!doctype html> 2<html> 3<head> 4<meta charset="utf-8"> 5<title></title> 6<link rel="stylesheet" type="text/css" href="style.css" /> 7</head> 8<body> 94 10</body> 11</html>
index.phpを表示すると、4.htmlの内容の下に「前」のリンクが表示されます
(「次」はif ($current === $max)のため表示されません)。
「前」をクリックすると正常に3.htmlの内容の下に「前」「次」の2つのリンクが表示されるのですが、いずれもなぜかvalueに「3」が入っており、クリックしてindex.phpに飛んでもおはなしの内容が3.htmlのまま変わりません。
$currentが「3」の時はvalueに「2」と「4」が、
$currentが「2」の時はvalueに「1」と「3」がというように順番に変わる様に値を入れたいのですが、なぜか「3」のままです。
どうすればよいでしょうか。
すごく基本的な部分でミスをしているかもしれません。
どなたかご教示願えれば幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/07 02:21