
phpのプログラムで数点詰まってしまった所がございましたので、アドバイスいただける方がいらっしゃいましたら、よろしくお願いします。
【やりたいこと】
1. index.phpのactionというボタン(inputタグ)を押すと、action.phpの中身を実行したい(これは出来ています)。
2. その際、ブラウザのURLはaction.phpではなく、index.phpにしたい(これは出来ていません。index.phpにaction.phpの実行結果を読み込めばよいのかなと思いましたが、その方法が分かりませんでした)。
3. index.phpのactionというボタンを押すと表示される画面に、「戻る」ボタンを表示したい(これは出来ていません。action.php内に「戻る」ボタンを記述した所、action.phpを正常に実行した際は「戻る」ボタンが表示されましたが、異常時には「戻る」ボタンが表示されませんでした。なおindex.phpに最初にアクセスした際には「戻る」ボタンは表示させたくありません)。
【ソースコード】
※phpが動作するサーバの同一階層内に、下記のindex.php、action.phpをアップしていただければ、動作を確認していただけると思います。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<form action="action.php" method="post" enctype="application/x-www-form-urlencoded">
<input type="submit" name="Submit" value="action" />
</form>
</body>
</html>
★action.php
<?php
phpinfo();
?>
どこか一箇所でもアドバイスいただけるようでしたら、アドバイスいただければと思います。
以上、よろしくお願いします。
No.4ベストアンサー
- 回答日時:
>異常時には「戻る」ボタンが表示されませんでした。
この異常時というのがよくわかりませんが、、、。
POSTデータの内容で条件分岐させて、index.phpの中でaction.phpの処理をさせてしまえばいいだけです。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<?php
if($_POST['Submit']){
phpinfo();
echo "<a href=\"".$_SERVER['PHP_SELF']."\">戻る </a>";
exit;
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="submit" name="Submit" value="action" >
</form>
</body>
</html>
この回答への補足
教えていただいたソースを実際に使用しているソースに適用した所、一通り意図した動作になっている事を確認しました(異常時の「戻る」ボタンについては、とりあえず現時点では保留しました)。
その為、本件はcloseさせていただきたいと思います。
ご回答をいただいた皆様、大変ありがとうございました。
ありがとうございます。
こちらの都合で、action.phpの中身をindex.phpの中に直接書くことは出来ない感じなので、一部ソースを変えさせていただきました。
そうした所、私が意図していた動作となりました。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<?php
if($_POST['Submit']){
include "action.php";
echo "<a href=\"".$_SERVER['PHP_SELF']."\">戻る </a>";
exit;
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="submit" name="Submit" value="action" >
</form>
</body>
</html>
★action.php
<?php
phpinfo();
?>
それと「異常時には「戻る」ボタンが表示されませんでした。」ですが、action.php内で「error」が発生した際、そこでプログラムが止まってしまい、「戻る」ボタンが表示されないので、そういう場合でも「戻る」ボタンを表示させたいと思いました。
とりあえずこの点についてはひとまず保留し、今回教えていただいたソースを元にプログラムを組んで見たいと思います。
No.3
- 回答日時:
つまりAjaxですね。
Ajax関係の書類は沢山出ているので、ぜひ購入してみてください。
簡単なコードを紹介します。別途prototypeを入手してください。
★index.php
<html>
<head>
<script src="prototype.js" type="text/javascript"></script>
<script src="ajax.js" type="text/javascript"></script>
</head>
<body>
<form id="ajaxsend">
<input name="送信データ" type="hidden" id="送信データ" value="あいうえお" />
<input type="button" id="ajaxbutton" value="変更" /> ←要求を送信するボタン
<div id="ajaxres"></div> ←結果を受信する位置
</form>
</body>
</html>
★ajax.js
Event.observe( window, 'load', eventhandler );
function eventhandler(){
Event.observe( 'ajaxbutton',
'click',
Ajax_Start_Send
);
}
function Ajax_Start_Send(){
var objAjax = new Ajax.Updater(
'ajaxres',
'./action.php',
{
method : 'post'
,
parameters : Form.serialize( 'ajaxsend' )
,
onFailure : function(){
alert( '通信失敗' );
}
}
);
}
★action.php
<?php
echo $_POST['送信データ'];
?>
結構適当に書いたので、動かないかもしれませんが、これで。
参考URL:http://www.google.co.jp/search?hl=ja&q=prototype
ありがとうございます。
action.phpを下記のように書き換え動作確認してみました。
★action.php
<?php
phpinfo();
?>
結構よさそうな感じでしたが、#2の「この回答へのお礼」に記載させていただきましたシェルコマンド版のソースの結果と比較すると、2点異なる箇所がございました。
1. action.phpを呼出し後、「戻る」ボタンでindex.phpに戻る為にはiframeを使う必要があるとの事でした。
なおF5キーで再読み込みすると前画面に戻れました。
http://www.google.com/search?num=50&hl=ja&lr=lan …
2. index.phpでactionボタンを押した際の表示結果と、action.phpに直接アクセスした際の表示結果が異なりました(内容自体は同一と思われます)。
パッと見、index.phpにaction.phpの結果を呼び出した際は、スタイルが無効になっているような感じに見受けられました。
それとAjaxで「戻る」ボタンを実現する為にはiframeが必要みたいですが、iframeを使用するとなるとyambejpさんからご指摘を受けました「別フレームで処理」という形になり、そうなるとAjaxを使用しなくても目的の動作が出来るのかもと思い始めています。
その為、「iframeのみ」「Ajax+iframe」のどちらかで意図した動作が出来ないか引き続き調査してまいりたいと思います。
No.2
- 回答日時:
ページの遷移なしに処理をするには別windowを開いたり別フレームで処理したりとか
方法がないことはないですが、phpのようなサーバー技術とは無縁の技術です
#1さんのあげているajaxが妥当な処理になるでしょう
ありがとうございます。
今回はinputタグでphpを呼び出そうとしているのですが、以前inputタグでシェルコマンドを呼び出した際はphpのみで完結したので、今回もphpだけで出来るだろうと思い込み、このカテゴリーに質問してしまいました。
一応ご参考までに今回やりたいことのシェルコマンド版のソースを記載させていただきます。
下記のindex.php、action.shをアップしていただき、action.shのパーミッションを755にしていただいた上で、index.phpにアクセスし、actionボタンを押していただくと動作を確認していただけると思います。
★index.php
<html>
<head>
<title>action</title>
</head>
<body>
<?php
if(!isset($action)){ $action = $_POST['action']; }
if ($action == "action") {
$result = shell_exec(escapeshellcmd('sh action.sh'));
echo nl2br($result);
?>
<input type="button" value="戻る" onclick="history.back()" onkeypress="history.back()" />
<?php
} else {
?>
<form action="index.php" method="post" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="action" value="action" />
<input type="submit" name="Submit" value="action" />
</form>
<?php
}
?>
</body>
</html>
★action.sh
#!/bin/bash
ls -l
シェルコマンド版ではブラウザのURLは変わらず、actionボタン押下後に「戻る」ボタンが表示されるので、これのphp版を作成しようと試行錯誤しております。
皆さんにアドバイスいただいた、Ajax関係を引き続き調べてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
引数を正しく読み込む方法
-
テキストボックスにデータベー...
-
phpについて
-
header.locationで、画面遷移、GET
-
ユーザーに入力してもらった値...
-
データベース接続 ログインフ...
-
form actionで二つ送信先を指定...
-
phpをオフラインで動かしたい
-
phpでお問い合わせフォームを作...
-
初めまして、
-
ファイルシステム関数関係
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
session_startでクッキー範囲を...
-
プログラミング作業効率を上げ...
-
microSDの装着による連続待受時...
-
Content-Typeが機能していない?
-
PHPを
-
ファイル(PDF・エクセル・ワー...
-
ブラウザのページキャッシュ機...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データ送信をボタンを押さずに...
-
form actionで二つ送信先を指定...
-
inputタグでphpを呼び出す際、...
-
【PHP】ページを更新すると勝手...
-
PHP table内、<a href使って su...
-
ボタンのクリック数を合計保存...
-
フレームを二つ同時に変更する
-
PHPにおけるCookieの挙動につい...
-
PEAR Image_QRCodeのエラー
-
phpでcookieをセットする方法
-
PHP,HTMLの値の引き渡しについて
-
携帯サイトでフォームタグとラ...
-
xamppでformによるデータの送信...
-
PEARのAuthを勉強中です
-
WORDPRESS カスタム投稿 カス...
-
Winsockでステータスコードを受...
-
GET変数の区切り文字について
-
セキュリティについて
-
テキストボックスにデータベー...
-
phpのプリペアドステートメント...
おすすめ情報