• ベストアンサー

データ送信をボタンを押さずに行いたいのですが...

環境  WindowsXP、Apache2.0.47、PHP4.3.2で使用しています。 質問  POSTメソッドのようなデータの送信を、submitボタンなしで行うにはどうすればよいのでしょうか? 詳細(現状)  file_1.phpのページでデータの入力を行い送信ボタンを押すとfile_2.phpへジャンプします。  file_2.phpでは入力データをSQLに登録し、再びfile_1.phpへ戻ります。  file_1.phpは、変数を引き渡すため<form action="file_2.php" method="post">でfile_2.phpへ  file_2.phpは、<META http-equiv="refresh" content="0; url=file_1.php">でfile_1.phpへ移動します。  連続でデータを入力するときに前のデータをデフォルトで表示しておきたいのですが、  file_2.php→file_1.phpへ変数を渡すにはどうすればよいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

file_2.php内に以下の記載を行ってみてください。 --------------------------------------------- <body onload="document.FRM.submit();" > <Form Name="FRM" Method="POST" action="file_1.php"> <input type =hidden name="Data_A" value= "<? /* ここに渡したい値を記載 */ ?>"> </Form>

wipe
質問者

お礼

回答ありがとうございました。 意図した動作が出来ました。 何故動くかはまだ分かりませんが<body onload="document.FRM.submit();" >が鍵のようです。 これから調べようと思います。 ありがとうございました。

その他の回答 (1)

  • lesbrers
  • ベストアンサー率48% (23/47)
回答No.2

file_2.phpの処理を、file_1.php内に記述することはできないのですか? SQLを使うわけではありませんが、以下のスクリプトは恐らくおっしゃってる動作をしていると思います。 <form name="test" method="post"> <input type="text" name="testfield" value="<?=$_REQUEST["testfield"]?>"></input> <br> <input type="submit" name="submit" value="go"> </form> <?php if($_REQUEST["submit"] != ""){ $fp=fopen("test.txt","a"); fwrite($fp,$_REQUEST["testfield"]."\n"); fclose($fp); } ?> 何かのヒントになれば幸いです。

wipe
質問者

お礼

回答ありがとうございます。 動作が確認できました。  $fp=fopen("test.txt","a");  fwrite($fp,$_REQUEST["testfield"]."\n");  fclose($fp); の部分に自分の行いたい処理を入れれば良い訳ですね。 submitボタンの下に<input type="reset" value="クリア">を追加したのですが、blankにはなりませんでした。 if($_REQUEST["reset"] != ""){のような処理を追加しなければならないのでしょうか? ファイルを2つに分けたのはその方法しか思いつかなかったので、この方法でも問題ないです。 参考になりました。ありがとうございました。