都道府県穴埋めゲーム

A.php
-------------------------------------------------------------
~省略~
print "<form action='./B.php' method='PSOT'>";
print "<input type='text' name='a_syori' value=''>";
print "<input type='submit' value='送信'>";
print "</form>";

--------------------------------------------------------------
B.php
~省略~
$b = $_POST['a_syori'];
$b = $b * 2;
--------------------------------------------------------------

B.phpでA.phpから送信された数値を2倍して
すぐにまたA.phpに戻す という動作を行いたいのですが
この場合、A.phpと同じ動作(formを作ってsubmitで送信)でしか
A.phpには戻らないのでしょうか?
見た目ではB.phpでは表示させずにA.phpのみしか表示させたくありません。
今回はPHPで処理を行いたいと思っています。

よろしくお願いいたします。

A 回答 (4件)

なぜ、B.phpに値を送信して処理させ、


その結果をまたA.phpに送信して表示するのかの理由がわかれば、
それなりのアドバイスもつけられるのではないかと思います。

A.php、B.phpが、
今後どのように拡張されていくのかはわかりませんが、
現段階のソースを見る限り、私なら、
No.2のご回答にあったようにrequireを使います。

A.php
<?php
print "<form action='' method='POST'>";
print "<input type='text' name='a_syori' value=''>";
print "<input type='submit' value='送信'>";
print "</form>";
require("b.php");
echo $b;
?>

B.php
<?php
$b = $_POST['a_syori'];
$b = $b * 2;
?>

この方が、私にはややこしくないように思います。
C.phpができた時に、A.phpと同様に使えます。
もちろん、C.phpから送信してまた受けてと、
行ったり来たり方式でも同様ではあります。

どちらが、開発しやすいか、動作しやすいか、
と言った事は私には判断できませんが、
「自動で飛ぶ処理」が必要不可欠であれば、
No.3のご回答のようになると思います。

単純にソースの記述がわからないのか、
作り方、組み立て方に惑って、他の方法を模索もしているのかで、
勉強になる事が増えも変わりもしてくると思います。
    • good
    • 0
この回答へのお礼

返事が遅くなってしまいましたが、本当にありがとうございます。

お礼日時:2008/12/09 01:46

#1,#2の必要十分な説明をみて、ご自身でなにかしらべましたか?


以下のようにやれば当座ご希望の通りになると思いますが、
セッションは必ずしも有効になっているとは限りませんので
だめな場合は別の方法をまた考えてください。

//A.php
<?
session_start();
$b=$_SESSION["b"];
if(!is_integer($b)) $b="";
print<<<eof
<form action='./B.php' method='POST'>
<input type='text' name='a_syori' value='{$b}'>
<input type='submit' value='送信'>
</form>
eof;
?>

//B.php
<?
session_start();
$b=$_POST['a_syori'];
$b *=2;
$_SESSION["b"]=$b;
header("Location:./A.php");
?>
    • good
    • 0
この回答へのお礼

返事が遅くなってしまいましたが、本当にありがとうございます。

お礼日時:2008/12/09 01:46

自動で飛ぶ(リダイレクト?)という質問なので的外れかもしれませんが、アドレス表示は常にA.phpにしたいということなら、$_POS

T['a_syori']に適正な値(2倍するのであれば数値だけとか...)が入っていれば、B.phpをincludeやrequireするとかは?

この回答への補足

返信ありがとうございます。
すみません、説明下手で^^;

えと、A.php(表示させる)⇒B.php(ココで処理)⇒A.php(表示させる)

という感じにしたいのですが。

もしよろしければ、簡単な例でも構いませんので、よろしくお願いしたします。

補足日時:2008/12/08 05:07
    • good
    • 0

B.phpの中で、演算が終わりまだ何も出力していない段階で


最初に下記を実行すれば、A.phpにジャンプします。
header('Location: A.php');

また、演算結果(例 $b)などをA.phpに戻したいのなら、
セッションを使うと良いでしょう

この回答への補足

さっそくの回答ありがとうございます。

お手数ですが、簡単な例文をいただけると助かります。
よろしくお願いいたします。

補足日時:2008/12/08 00:54
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!