人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

aタグの中にPHPを入れるとなぜか正常に動作しない...

<a href="http://xxx/xxx/?page=<?php print($page + 1); ?>">次のページへ</a>
次のページに遷移するような仕組みが作りたかったので、このように書いたのですが
上手く動作しません。
何か間違っているのでしょうか?
ちなみに$pageには現在のページの数字が入っています。
そして+1することで次のページに遷移するように書いたつもりなのですが...


●質問者: てすと
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● うぃんど

その部分だけを見れば間違いではないかもしれませんが、
例えば、下記みたいにして、式ではなく文字として代入してたりすると思い通りにはなりません。

<?php
$page = '123';
$hoge = '<a href="http://xxx/xxx/?page=<?php print($page + 1); ?>">次のページへ</a>';
print $hoge;

例えば、下記みたいにして、以下同文

<?php
print<<<EOT
<a href="http://xxx/xxx/?page=<?php print($page + 1); ?>">次のページへ</a>
EOT;

例えば・・・例えば・・・ほかにもいろいろ考えられますが、
書き間違いによる文法エラーを除けば、
エラーの原因は、エラー発生箇所以外にある場合がほとんどです。

そのため、問題解決するためには、下記のような情報が必須です。
・具体的にどのような状態になっているかを説明した図や文章
・本当はどのような状態にしたいのかを説明した図や文章
・エラーが発生するコード全部
(自己判断で部分的に見当がつくくらいなら質問する必要はまずもって無い)
・エラーメッセージが出ている場合はエラーメッセージと発生箇所

これからも多数の質問をすることでしょうから、覚えておいてください。


さて、本題に戻って、ここからは過去の質問から想像して書きますが、
多分下記のようにすれば良いでしょう。

<?php
$page = '123';
$hoge = '<a href="http://xxx/xxx/?page=' . ($page + 1) . '">次のページへ</a>';
print $hoge;

phpの学習を進める前に、
演算子には優先順位があるということをまずは理解してください。
http://php.net/manual/ja/language.operators.precedence.php


2 ● パパトモ

もしそのままブラウザに送信されているなら、これをチェック


パパトモさんのコメント
なんとな〜く、CGIとして動作していないような気がします。

てすとさんのコメント
回答ありがとうございます! ブラウザで確認してみたところ、 しっかり思った通りにリンクされいてるようなのです。 ただ、クリックしても遷移されずにリロードされるだけなのです。 どういうことでしょうか?

パパトモさんのコメント
もう少し具体的に説明してください。 ブラウザでソースを表示して、●●部分が、どのようになっているかを教えてください。 >> &lt;a href="<a rel="nofollow" target="_blank" href="http://xxx/xxx/?page=%3C?php" class="urllink">http://xxx/xxx/?page=●●"&gt;次のページへ&lt;/a&gt; <<

てすとさんのコメント
●●の部分は2になっています。

パパトモさんのコメント
今、コメントを見ました。 それであれば、ご質問のページ部分には問題ないと思います。問題は、インデックスページのCGI(PHP?)かブラウザのキャッシュの問題だと思います。 キャッシュの問題: http://tech.bayashi.net/pdmemo/browsercache.html

パパトモさんのコメント
もしキャッシュの問題であれば、そもそもWebサーバーにはリクエストが届いていないので、Webサーバーのアクセスログを調べて、ちゃんとリクエストがきているかどうかチェックした方が良いと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ