PHPとaccesskeyを使用した携帯向けHPでのページ遷移の問題

このQ&Aのポイント
  • 携帯向けのHPを作っています。1枚1枚画像が表示される簡易フォトアルバムを作成中です。ページ遷移のために、携帯で1を押すと前のページに、2を押すと次のページに遷移する仕組みを作りたいのですが、accesskeyを使ってボタンを作ると画像とリンクが見えなくなる問題が発生しています。
  • 以下のPHPスクリプトが表示用のHTMLを生成している部分です。この部分でaccesskeyを指定すると、画像とリンクが表示されなくなってしまいます。
  • 現在の問題は、accesskeyを使用したボタンを作成すると画像とリンクが見えなくなることです。解決策を教えてください。
回答を見る
  • ベストアンサー

PHPとaccesskey

携帯向けのHPを作っています。 1枚1枚画像が表示される簡易フォトアルバムを Sapphirus.Biz(http://www.sapphirus.biz/)さんの 所からお借りしています。 大体は思う通りになってきたのですが、 ひとつだけどうしてもわからないところがあります。 携帯で3を押したら前や次のページに 飛ぶようにしたいのですが、 例えば <?php //ページめくり用スクリプト部分(前へ) if($prev){ echo"&#xE522;<a href=\"?$dataDir|$prev\">前へ</a>"; }else{ echo"&#xE522;前へ"; } の echo"&#xE522;<a href=\"?$dataDir|$prev\">前へ</a>"; を echo"&#xE522;<a href=\"?$dataDir|$prev\" accesskey="1">前へ</a>"; のようにすると""の前の\のせいか 画像もリンクも見えなくなってしまいます。 (全く白紙のページしか見えなくなる) どうしたらいいでしょうか? 以下ソース <?php //設定 $contents='album.txt'; //タブ区切りのテキストファイル名 //メイン header("Content-type: text/html; charset=SJIS"); $query=$_SERVER['QUERY_STRING']; if(!$query) exit('ディレクトリが指定されていません'); elseif(!strstr("|",$query)){ list($dataDir,$no)=explode("|",$query); }else{ $dataDir=$query; } $data=@file("$dataDir/$contents")or exit('データファイルが開けません'); $total=count($data); if(!$no) $no=1; list($file)=explode("\t",rtrim(mb_convert_encoding($data[$no-1],'SJIS'))); $image="$dataDir/$file"; list(,,,$attr)=@getimagesize($file); if($no>1) $prev=$no-1; if($no<$total) $next=$no+1; /* ここから下が表示用HTMLです */?> <head> <title>タイトル</title> <link href="../style.css" rel="stylesheet" type="text/css"> </head> <body> <div id="MAINLAYOUT"> <center> <?=$no?>/<?=$total?><br> <!-- イメージ表示 --> <div id="IMG"><img src="<?=$image?>" alt="<?=$file?>" <?=$attr?> /></div> <?php //ページめくり用スクリプト部分(前へ) if($prev){ echo"&#xE522;<a href=\"?$dataDir|$prev\">前へ</a>"; }else{ echo"&#xE522;前へ"; } //ページめくり(前へ)ここまで ?> - <?php //ページめくり用スクリプト部分(次へ) if($next){ echo"&#xE524;<a href="\?$dataDir|$next\">次へ</a>"; }else{ echo"&#xE524;次へ"; } //ページめくり(次へ)ここまで ?> <hr> &#xE523;<a href="menu.htm" accesskey="2">メニューへ</a><br> <hr> &#xE5AC;<a href="index.htm" accesskey="0">Topへ</a> </center> </body> </html>

  • PHP
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

記述が間違っているのでエラーになっています。 正しくは下のように書きます。 echo"&#xE522;<a href=\"?$dataDir|$prev\" accesskey=\"1\">前へ</a>";

revatin
質問者

お礼

無事できました!ありがとうございました!

関連するQ&A

  • php_selfで複数の変数をパラメタとしたいとき

    php4.3.5にてdbデータをページ分けして表示する簡単なプログラムで、次ページへのリンクにページ番号をパラメタとして持たせていますが、もう1つの変数をパラメタに追加したいのですが私の追加方法では変数値が帰って来ません。 ~dbリード~dbデータの表示~ // 前のページ/次のページへのリンク if ($p > 1) { echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$prev\"> 前のページ</a>"; } if (($next - 1) * $lim < $dtcnt) { echo " <a href=\"".$_SERVER["PHP_SELF"]."?p=$next\">←ココに?age=$ageを追加したい。 次のページ</a>"; } 単なる書式の問題なのかも知れませんが、オンラインマニュアル・MLの検索でも分かりませんでした。 ご教授よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpのページ送りについて

    既出の質問で大変恐縮ですが、どうしても自分の理解力が足りないため、教えてください。 phpでページ送りの機能をつけようと思います。 100件だけ取り出して、あとを 前のページへ|1|2|3|…|次のページへ のようにするのはどうしたらよいのでしょう。 いま組んでいるベースを書きます。 初心者で勉強をしているのですが頭が悪く、できれば下記に合わせて作っていただけますと幸いです。 ================================================================================== $sql2 = "select * from creater"; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); if($rows2 == 0){ echo "<p>該当データがありません。</p>"; } else { while($row2 = mysql_fetch_array($result2)){ echo "<p><a href=\"creater.php?createrid=",$row2["createrid"],"\">"; echo $row2["creater"]; echo "</a>"; echo "</p>"; } } ================================================================================== 実際のページは ttp://www.game-minzoku.jp/all-creater2.php です。 何とぞ、よろしくお願いいたします。

    • 締切済み
    • PHP
  • すいません。PHPの削除について

    質問番号5654502は失礼しました。お手数ですが、削除してください。 phpでWEBサイトの管理画面を作成しています。 削除ボタンを押すと、そのレコード1件分のみ、削除出来るようにしたいのですが、うまくいきません。ご教授願います。 // news.phpファイル <?php //データベースへの接続 $dberror = false; $dbermsg = ""; $con = mysqli_connect("localhost", "****", "********"); if ( $con ) { //データベースサーバへの接続OK if ( mysqli_select_db($con, "DB名") ) { $sql = "SELECT * FROM news WHERE user = '" . $_SESSION['loggedinUser'] . "' ORDER BY listingorder DESC, lastupdate DESC; "; mysqli_query($con, "set names utf8"); $rs = mysqli_query($con, $sql); $i = 0; if ( $rs ) { while ($item = mysqli_fetch_array($rs)) { echo "<tr class=\"Contents\">"; echo "<td><input type=\"hidden\" value=\"\" name=\"deleteId[$no]\" />"; echo "<input accesskey=\"1\" tabindex=\"1\" class=\"DeleteBt\" type=\"image\" value=\"削除\" name=\"submit_del[$no]\" src=\"images/delete_button.gif\" alt=\"削除\" onclick=\"deleteNews(); return false;\" /></td>"; echo "<td>"; echo "<div class=\"TurnSet\">"; echo "<div class=\"TheFirst\"><input accesskey=\"1\" tabindex=\"1\" type=\"submit\" value=\"▲\" class=\"broad\" name=\"weight[$no]\" /><br /><input accesskey=\"1\" tabindex=\"1\" class=\"broad\" type=\"submit\" value=\"▼\" name=\"weight2[$no]\" /></div><input accesskey=\"1\" tabindex=\"1\" type=\"submit\" class=\"UpArrow\" value=\"↑\" name=\"weight3[$no]\" /> </div>"; echo "</td>"; echo "<td class=\"TableName\"><span><a href=\"news_edit.php?id=${item['id']}\">${item['title']}</a></span></td>"; echo "<td class=\"CheckBoxPlace\"><input type=\"hidden\" name=\"active_o[$no]\" value=\"1\" /><input type=\"hidden\" name=\"active2[$no]\" value=\"0\" /><p class=\"CheckBox\"><input type=\"checkbox\" name=\"active3[$no]\" value=\"1\" checked=\"checked\" accesskey=\"1\" tabindex=\"1\" /></p></td>"; echo "</tr>\n"; $i ++; } } else { $dberror = true; $dbermsg = "一覧取得時のエラー" . mysqli_errno($con).": ".mysqli_error($con)."<br />\n"; } } else { // 以下省略 } ?> </body> <script type="text/javascript"> function deleteNews() { if ( window.confirm("選択されたニュースを削除します。\nよろしいですか?") ) { document.newsUpdateForm.mode.value = "delete"; document.newsUpdateForm.submit(); } return false; } </script> </html> // newsUpdate.phpファイル switch ( $mode ) { case "delete": //ニュース削除 if (isset($_POST["submit_del"])){ $no = key($_POST[submit_del]); //押下したボタン番号を取得 $sql = "DELETE FROM news WHERE listingorder='" . $no . "';"; mysqli_query($con, "set names utf8"); mysqli_query($con, $sql); } //表示順を更新する $sql = "SELECT * FROM news WHERE user = '" . $_SESSION['loggedinUser'] . "' ORDER BY listingorder, lastupdate ;"; mysqli_query($con, "set names utf8"); $rs = mysqli_query($con, $sql); $order = 0; if ( $rs ) { while ($item = mysqli_fetch_array($rs)) { $id = $item["id"]; $updateSQL = "UPDATE news SET listingorder='" . $order . "' WHERE id='" . $id . "';"; mysqli_query($con, "set names utf8"); mysqli_query($con, $updateSQL); $order ++; } } break; 以下省略

    • 締切済み
    • PHP
  • php ページャー

    php ページャー機能がうまくいきません。 ご教授お願いいたします。 ページリンク2、3と押しても ページが移動しません。 ずっと一ページ目のままです。 解決方法よろしくお願いいたします。 index.php peger.php 書きソースはpeger.phpです。 index.htmlとのソースの違いは if(preg_match('/^[1-9][0-9]*$/', $_GET['page']) ){ $page = (int)$_GET['page']; }else{ $page = 1; } のプログラムががindex.phpにはないだけです。 <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>検索</title> </head> <body> <?php if(preg_match('/^[1-9][0-9]*$/', $_GET['page']) ){ $page = (int)$_GET['page']; }else{ $page = 1; } $page = 1; $limit = 2; $offset = $limit * ($page - 1); $dsn='mysql:dbname=****;host=****'; $user='*****'; $password='*****'; $dbh=new PDO($dsn,$user,$password); $dbh->query('SET NAMES utf8'); $sql='SELECT count(*) FROM `mst_product`'; $stmt=$dbh->prepare($sql); $stmt->execute(); $db=null; $total=$stmt->fetchColumn(); $lastpage= ceil($total/$limit); $sql = 'SELECT * FROM mst_product ORDER BY code DESC LIMIT '.$limit.' OFFSET '.$offset.' ' ; $stmt = $dbh->prepare($sql); $stmt->execute(); $db = null; while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ echo $row['name']; echo'</br>'; echo $row['price']; } echo '<ul class="pager">'; ?> <?php if($page > 1){?> <li><a href="pager.php?page=<?php echo $page-1; ?>"> << </a></li> <?php } for($i = $page; $page-2 < $i && $i <= $page+4 && $i <= $lastpage; $i++){ ?> <?php if($i == $page){ ?> <li><a href="kensaku_pager.php?page=<?php echo $i; ?>"><?php echo '<font color="#FF4DC4">'.$i.'</font></a></li>'; }else{?> <li><a href="pager.php?page=<?php echo $i; ?>"><?php echo $i.'</a>'; ?> <?php echo '</li>'; } } if($page < $lastpage){ ?> <li><a href="pager.php?page=<?php echo $page+1; ?>"> >> </a></li> <?php } ?> </ul> </body> </html>

    • ベストアンサー
    • PHP
  • PHPリンク

    <?php $num = intval($_POST["id"]); if ($num == 3964785) { <a href="http://nakuranet.com"></a> } else { echo '認証失敗'; } ?> とした場合にエラーが出ます。 認証成功者にのみ、指定ページに飛ばしたいのですが、PHPでリンク先を指定したい場合は、<a>タグは使えないのでしょうか?

    • ベストアンサー
    • PHP
  • PHPがおかしい

    $GET['type']が"login"でも"tutorial_hsp"と同じ挙動をしてしまいます。 部分のスクリプトはこんな感じです。 if(!isset($_GET['type'])){ echo "<h2>14ちゃんねるデベロッパーメニュー</h2>"; echo "<p><a href=\"menu.php?type=tutorial_hsp\">14ちゃんねるの扱い方<a href=\"https://hsp.tv\">(HSP)</a></a></p>"; echo "<p><a href=\"https://ux.getuploader.com/14channel/\">作ったツールのアップロード(別サイトに飛びます)</a></p>"; echo "<p><a href=\"../program\">作ったツールの宣伝</a></p>"; }else{ if($_GET['type'] = "tutorial_hsp"){ echo "<h2>14ちゃんねるの扱い方(HSP)</h2>"; echo "<p>"; echo "まずは、<a href=\"hsp.tv\">HSP</a>をインストールしてください。<br>"; echo "そうしたら、「HSPスクリプトエディタ」を開いて、以下のスクリプトを入力してください。"; echo "</p>"; echo "続きは制作中です..."; }else{ if($_GET['type'] = "login"){ echo "<h2>404 Not Found</h2>"; } } } URL: http://arkmonster.r.ribbon.to/developer/menu.php?type=login

  • phpでページング処理の書き方

    環境:php+mysql サイト内検索をphpで書いてます。 ■やりたいこと 検索結果が10件として1ページの検索結果数を3件とした場合 ページングは4ページまでとして、最終ページの4ページ目で 「次へ」のボタンを非表示にしたいです。 ■現状 検索結果は表示されますが、検索結果ページで 「次へ」 や 「戻る」 ボタンをつけて動作する際、いつまでの「次へ」やボタンが表示されページングできてしまいます。。 実際に書いている処理 <?php if ($num > 3){//検索結果が3件以上でページングが表示される if($page>0){ echo "<a href='./re.php?key={$a}&pages=".($page-1)."'>前の3件</a>"; } echo "&nbsp;&nbsp;|&nbsp;&nbsp;<a href='./re.php?key={$a}&pages=".($page+1)."'>次の3件</a>"; } ?> if ($num > 3)で何か処理を書かなければならないと思いますが、、 アドバイスいただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • header("Location: ")でページ移動しない;

    <?php $image_no = $_GET['image_no']; if($image_no == ""){ $image_no = 0; } if($image_no == 10){ header("Location: http://www.test/i/"); } ?> <img src="../img/test<?php echo $image_no;?>.jpg"> <?php echo $image_no;?> <br/> <a href="test.php?image_no=<?php echo $image_no + 1;?>">次へ</a> こんなカンジで、『次へ』のリンクをクリックすると、画像が切り替わるものを書いたんですが、$image_no == 10になったら、別のページへジャンプしたいんですが、うまくいきません。 10回目でエラーになってしまいます。 どうやったらうまく違うページへジャンプできるのでしょうか?

    • ベストアンサー
    • PHP
  • PHP外部の変数を保持して足し算する方法

    PHP初心者です。 今、診断テストをPHPで作っているのですが、 外部ファイルから受けとった変数を保持している方法が分かりません。。 質問が5問あるので、それぞれ5つのshitumon1.php~shitsumon5.phpがあります。 ■shitsumon1.php ------ $no = $_GET["no"]; $counts = $_GET["counts"]; $countssub = $_GET["countssub"]; $question = "質問文1"; $answer1 = "答えの選択肢1"; $answer2 = "答えの選択肢2"; $answer3 = "答えの選択肢3"; //(↓どこの選択肢を押したかによって、countssubに点数を加算していく) if($no == 1){ $countssub = $countssub + $counts; }else if($no == 2){ $countssub = $countssub + $counts; }else{ $countssub = $countssub + $counts; } ?> <center> <div id="main_contentsbox"> <h1>診断テスト</h1> <div id="contents_bak"> <div class="text_catch"><? echo $question; ?></div> <ul> <li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li> <li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li> <li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li> </ul> </div> </div> </center> ----- ■shitsumon2.php ------ $no = $_GET["no"]; $counts = $_GET["counts"]; $countssub = $_GET["countssub"]; $question = "質問文2"; $answer1 = "答えの選択肢1"; $answer2 = "答えの選択肢2"; $answer3 = "答えの選択肢3"; //(↓どこの選択肢を押したかによって、countssubに点数を加算していく) if($no == 1){ $countssub = $countssub + $counts; }else if($no == 2){ $countssub = $countssub + $counts; }else{ $countssub = $countssub + $counts; } ?> <center> <div id="main_contentsbox"> <h1>診断テスト</h1> <div id="contents_bak"> <div class="text_catch"><? echo $question; ?></div> <ul> <li id="list1"><a href='shindan2.php?no=1&counts=100&countssub='><?php echo $answer1 ?></a></li> <li id="list2"><a href='shindan2.php?no=2&counts=200&countssub='><?php echo $answer2 ?></a></li> <li id="list3"><a href='shindan2.php?no=3&counts=300&countssub='><?php echo $answer3 ?></a></li> </ul> </div> </div> </center> ----- 本当はcountssubにどんどんポイントが加算されていきたいので、 質問1と質問2、両方選択肢1を選んだ場合は、 100+100で200の結果をcountssubに入れたいのですが、 なんだか上書きされているようで、どんどんポイントを加算していくことが出来ません、 どうやったら、違うファイルで受け取った変数を保存していくことが出来るのか ご教授ください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 1ページあたりの表示制限に関して

    <?php require_once('test/common.php'); $Data=file("test/item.csv"); $ID=$_GET[id"]; if($P>0){ $Prev=$ID-1; $PrevPage="<a href='index2.html?id={$Prev}'>前の10件</a>"; } $Size=sizeof($Data); if($Size/1-1>$ID){ $Next=$ID+1; $NextPage="<a href='index2.html?id={$Next}'>次の10件</a>"; } ?> 全<?=$Size?>件 | <?=$PrevPage?> <?=$NextPage?> 「次の10件」「前の10件」のところを文字じゃなく画像を用いたいのですが、<img src="img/next.png" width="100px" />を入れてみるとページがエラーになってしまいます。文字じゃなく画像を使うにはどのようにすればいいのですか? 教えてください。

    • 締切済み
    • PHP