質問:データベース更新に関する考え方と方法

このQ&Aのポイント
  • データベースを更新するためのPHPファイル(update.php)を別のPHPファイルからjavascriptを使って呼び出す方法について教えてください。
  • 現在の方法では、update.phpがファイルとして開かれてしまい、更新ボタンを押した時に裏で更新処理を行うことができません。解決方法はありますか?
  • また、update.phpを関数化する方法も考えられますが、別ファイルで更新処理を行いたいと思っています。どのような方法があるでしょうか?
回答を見る
  • ベストアンサー

更新処理に関して

教えて下さい。 データベースを更新するだけのPHPファイル(update.php)を作成し、それを別(親)のPHPから javascriptを使って呼び出し、更新処理をさせようと考えています。 その際に、javascriptでsubmitで引数を渡していますが、どうしてもupdate.phpのファイルが開いて しまい、更新ボタンを押下時に裏で更新処理をさせるというような事ができないのでしょうか。。。 update.phpを関数化してしまった方が良いという話もありましたが、なんとか別ファイルで更新処理 を行いたいと考えています。 初歩的な質問で申し訳ありませんが、教えて下さい。 よろしくお願いします。

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

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

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

隠しフレームとか。 <iframe width="0%" height="0%" name="dmy"> <form target="dmy" action="update.php">

yurix_1
質問者

お礼

ご回答ありがとうございます。 以前に調べたところ、教えて頂いたように"iframe"を使ったケース がありましたが、知識不足で良く理解できませんでした。 上記の内容ももう少し詳しく教えて頂ければ助かります。 よろしくお願いします。

その他の回答 (3)

回答No.4

http://www.studyinghttp.net/cgi-bin/rfc.cgi?2616#Sec10.2.5 http応答で204 No Contentを返すとか方法は色々ありそうですね。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

すでに回答がありますが非同期処理であればajaxなのでしょう。 ただ、無手順で更新をかけられる仕組みは攻撃しやすく危険がつきものですし バリデートや二重処理のことも考えると管理しやすいとは言えません。 可能な限りページ遷移を前提とした構成にした方がスマートだと思います

回答No.1

ちょうど今日隣の人に聞かれたので答えときます。 関数化したところでページは遷移すると思いますよ。 ライブラリ使わないと面倒なんでjqueryで; <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript"> $(function(){  //サブミットボタンをクリックしたら  $('#submit_id').click(function(){   //シリアライズ   form_data = $('#form_id').serialize();   //ajaxで通信   $.ajax({    type: "POST",    url: "update.php",    data: form_data,    success: function(e){     //eには結果がはいりますー。任意の方法で表示やた判別を。     alert(e);    }   });  }); }); </script> HTML <form id="form_id">  <input>  <input type="submit" id="submit_id"> </form> こんな感じでどうでしょ。 最初は$.getとか$.postの方が単純でいいかも。 上のソースは全角なんで半角に直してください。ではー。

yurix_1
質問者

お礼

早速のご回答ありがとうございます。 やはりAjax等を使わないとできないですか・・・

関連するQ&A

  • 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。

    PHP初心者です。 1つのファイルにデザイン(HTML)と計算処理(PHP)を記述していますが、分けたいと思っています。 何か方法がありますでしょうか?よろしくお願いします。 (画面仕様) HTMLファイルにFRAME1とFRAME2という名前の2つのインラインフレームを配置しています。 FRAME1はHTMLファイル、FRAME2はPHPファイルを使用します。 FRAME1にはテキストボックス、FRAME2はボタンが表示されます。 (動作手順) 以下のような動作をします。 (1)FRAME1のテキストボックスの内容を変更、又はFRAME2のボタンを押す。 OnChange()又はOnClick()イベント時にJavaScript処理が実行される。 <JavaScript処理> FRAME2のURLを更新(テキストボックス内容をURLの引数にする) (2)FRAME2は更新されたのでボタンが再表示される。 PHPとJavaSctiptが記述されているので実行される。 <PHP処理> URL引数で渡された値を判定、計算 <JavaScript処理> FRAME1のテキストボックスにPHPで計算した値を表示 FRAME2に使っているファイルにHTMLとPHPとJavaScriptが一緒にかかれています。これを何とかしたいです。

    • ベストアンサー
    • PHP
  • phpのsubmit処理について

    phpのsubmit処理について不明点があります 実装したいことは ボタンを押したらフォームの入力内容を別フォームに表示したいのですが 別フォームに呼び出しはできたのですが ボタン押下時にsubmitで表示するかの確認をしたいです 現段階ではボタンを押すと確認アラートも出ず、ただ別フォームが表示される形になってしまいます <--関数--> function showData(){ myRet = confirm("表示しますか") if (myRet == true){ } } <--form--> <form name = "FileData" action = "show.php" method="POST"> <--button--> <input type = "submit" name ="Display" onClick "showData();" value="表示"> ソースの抜粋になります これで実行するとshow.phpが呼ばれて表示はされるのですが関数が呼ばれず確認アラートも呼ばれません すぐ実行されるというものになっていますます この現象の原因と何か解決などわかることがあればよろしくお願いします。

    • ベストアンサー
    • PHP
  • 処理を止める関数

    PHPファイル途中で、それ以降のHTML(例では<hr>)を出力しない関数を教えてください。 JavaScriptを出力してブラウザが中止するような方法ではなくサーバがPHPの処理によって中止する関数を探しています。 ---bbsmain.php--- ... if ($stopflg == 1) { ここを教えてください。 } <hr> ...

    • ベストアンサー
    • PHP
  • javascript内からのsubmit

    PHP初心者です。 javascript内でsubmitを行い、値をPHP内で受け取る想定ですが、うまく作動しません。 具体的には下記のソースで、// Aの処理に入ってきて欲しいのですが、//B に入ってきます。 初歩的なことのなのかもしれませんが、どこが間違っているのか分からずはまっています。 ご教授ください。 ソースは以下です。 ■JavaScriptとForm(admLogin.html) <script type="text/javascript" src="js/jquery-1.9.0.min.js"></script> <script type="text/javascript"> function fncLogin(){ $("#frmAdmLogin").submit(); } </script> <body> <form id="frmAdmLogin" action="admLogin.php" method="post"> <input type="text" id="txtAdmId" /> <input type="text" id="txtAdmPass" /> <input type="button" name="btnLogin" value="ログイン" onclick="fncLogin()"/> </form> </body> ■PHP(admLogin.php) <?php if(isset($_POST['btnLogin'])) { // A }else{ // B } ?> ログインボタン押下 ↓ fncLogin内からフォームをsubmit ↓ // A の処理に入ってくる想定なのですが、//B の処理が実行される。 ちなみに、ボタンのinput typeをsubmitにすれば//A の処理に入ってくるのですが、 javascript内からsubmitしたいため、困っています。 どこを間違えているのでしょうか。。

    • 締切済み
    • PHP
  • 連続処理要求の禁止について

    ASPかJAVAScriptで質問するか 迷ったのですが、ASPで質問させて頂きます。 以下の流れで処理が走ります。 1.ASPで作成されたHTMLを表示する。 2.表示されたHTMLでSubmitボタンを押下する。 3.OnSubmitでHTMLに入力されたデータをチェックする(JAVAScript) 4.チェックが正常ならSubmitし、自ページをロードする。 5.ASPで入力したデータを取得し、DBに登録する 6.DBに正常登録されたら違うURLに飛ぶ といった流れの中でSubmitボタンを押下後、 再度Submitボタンが押されても無効にしたいのですが、 何か方法をご存知でしたら御教授ください。 できたら、フラグとかを立てずに、 JAVAScriptの処理中やサーバからの応答待ちといった ステータスを取得して制御したいと思っています。 フラグを立てなければ無理といった情報でも知りたいので、 御教授お願いいたします。

  • GoogleMapをリアルタイムに更新

    データベース(MySQL)に更新があった場合、GoogleMap上にリアルタイムにマーカーを表示させたいと考えています。 現在、XMLファイルの読み込みライブラリー downloadxml.js を利用し、PHPのXMLファイルを読み込んで実装しています。 調査していくと、リアルタイムに更新を行うには、ajaxを利用することがわかりました。 そのため 、jQuery のJavaScriptライブラリーを利用してPHPのXMLファイルを読み込む形になるのか、と思っているのですが、データベースに更新があった場合にリアルタイムにGoogleMapを更新させるには、どちらの読み込みで行うとよろしいのでしょうか? またリアルタイム更新には、cometという技術を使う必要があるということを調査して分かったのですが、具体的なソースコードが出ているページなど詳しい説明が載っているページがあれば、教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP プルダウンを選んだ瞬間に処理開始

    PHPで、フォームのプルダウンを選んだ時、たとえば、「1月」を選んだ時に処理を開始し、選択されている1月のデータだけをデータベースからとってきて表示したいです。 <input type="submit" ~> の送信ボタンで送信するわけではなく、プルダウンを選んだ瞬間に処理開始したいので、$_POST[]では取得できませんでした。 PHPでプルダウンを選んだ瞬間にプルダウンのデータを送信する方法があれば教えてください。 PHPは現在勉強中の超初心者、javascriptはjQueryなら少々書ける程度です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 指定されるdiv の部分の再読み込み処理について

    javascript についてあまりわからないですが、javascript で以下のようなことをしたいですが、よくやり方がわかないので、わかっている方は教えていただきたいです。 <div id="sample"> この部分には、DBからデータを取り出す処理が入っているとする </div> form でsubmitをすると、id が sampleのところの処理を更新してくれる ようなjavascript はどうやって実現しますか? よろしくお願いします。

  • AjaxのOnFailureについて

    Ajax(prototype.js)を使用しているのですが、OnFailureが呼び出されてしまいます。 プログラムの流れです。 ボタン押下(html) ↓ 前処理(js) ↓ サーバのファイル情報取得(ajax非同期通信→php→戻ってきて情報取得) ↓ 取得したファイル数ループ(js) ↓ ↑ 別のサーバにコピー(ajax非同期通信→php→戻り値判定) ↓ ループ抜けたら終了処理 大量のファイルを処理した場合、4~5経過したあたりで 「別のサーバにコピー(ajax非同期通信→php→戻り値判定)」 が正常に行われず、後処理として記述してあるOnFailureを呼び出してしまいます。 OnFailureについて調べてみたのですが、MSDNのAjaxOptions クラスに 「ページの更新が失敗した場合に呼び出される JavaScript 関数。 この関数は、応答ステータス 200 の範囲内にない場合に呼び出されます。」 と記述されていました。 応答ステータスとは何を指しているのでしょうか。 回避方法があれば教えてください。 よろしくお願い致します。

  • BM等からサイトに行った時と更新の処理の違い

    BMやURL直打ちでサイトに行ったときと、更新ボタンを押したときは htmlの読み込み方が違うのでしょうか? 現在、画像スライドショーのJavascriptをホームページ上に配置しており、 直接行ったときは正常に表示されるのですが、 更新ボタンを押すとJavascriptの裏にスライドショーの下に配置されてある文字が 隠れてしまいます。 スライドショーのスペースが100pxとってたとすると、更新ボタンを押すとそれが1px程の扱いとなり、 その分下に配置されてある文字などが99px分上に配置されてしまい、 スライドショーの裏に隠れてレイアウトが崩れてしまいます。 対処したいのですが、サイトに行くときのhtmlの処理の仕方と、 更新ボタンのhtmlの処理の仕方の違いがわからないため、対処に困っています。 どうかよろしくお願いします。

専門家に質問してみよう