• ベストアンサー

GETやPOSTについて

教えてください。 PHPやVbscriptなどでformタグにmethod="post"と書くのと、onclick="…"でJavascriptの中でsubmitするのと どのように違い、使い分ければ良いのでしょうか? Javascriptの記述で入力内容をチェックするような箇所は別にして、何か使い分けられるような ことはあるのでしょうか? Formのデータ量によって?使い分けるなど。 宜しくお願いします。

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

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

POSTとGETの大きな違いは、GETがURLを汚しているということです 利点としてはサブミットしなくてもリンクでGETはおくれますが 欠点としてはGETのパラメータつきでブックマークするといらない 情報がのこってしまうことがあります データ量についてはさほど気にすることはありません。 明確にちがうのはファイルをアップロードする場合はPOSTでしかできません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5087/13301)
回答No.1

JavaScriptで入力内容のチェックやデータの加工が必要なければJavaScriptからsubmitする理由は無いのではないでしょうか。 GETとPOSTの使い分けと言う事であれば、送信するデータの量と内容で使い分ける事になると思います。 データ量については、GETの場合データがURLの一部として送信されるため、ブラウザやHTTPサーバ、プロキシ等の仕様で長さが制限されている場合がありますのでデータ量が多い場合はPOSTにするのが無難です。 内容の面については、GETの場合データがURLの一部になっているため、サーバ側のアクセスログ等にデータの内容が記録されます。認証情報(パスワード等)や個人情報など厳重に管理する必要があるデータの場合ログに残ってしまうのはマズイ場合があるので注意が必要です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • GETはできるがPOSTができない、、、

    PHPの勉強を始めたのですが、困ってるので教えてください。 HTMLのformタグでmethod="GET"では、PHPへデータが渡るのですが、"POST"ではデータが渡りません。 このような場合、どのような原因が考えられるのでしょうか? 環境は OS: WindowsXP(SP2 PHP: 4.3.10 Apache: 2.0.52 すべてSJISで統一しています。 よろしくお願いします。

    • 締切済み
    • PHP
  • formでPOSTするのと同じ動作をボタンとjavascriptで実現したいのですが

    <form name="myFORM" method="POST" action="xxx.php"> <input type="text" name="NAME"> <input type="submit" value="送信"> </form> 上記と同じ動作を <button onclick="fpost('tanaka','POST','xxx.php')">送信</button> とjavascriptで実現したいのですが可能でしょうか? 可能でしたらどのようなスクリプトになりますでしょうか? document.myFORM.submit();とかではなく、formタグを全く使わずPOSTしページ遷移したいのですが。 XMLHttpRequestとlocation.replace()とかでできるのでしょうか?? すみませんがよろしくお願い致します。

  • POST送信かGET送信か

       ------------------------------------------ <SCRIPT language="JavaScript"><!-- function GoPage(url, id){ document.form.action = url; document.form.id.value = id; document.form.submit(true) } // --></script> <!--中略--> <input type="submit" name="submit" value="送信" onClick="javascript:GoPage("a.php", "1")">    ------------------------------------------    上記のような処理を書いた場合、 遷移先である a.php で id(値:1)を取得する時は POSTで受け取るのですか?それともGETでしょうか?   

  • PHPとJavaScriptで...

    PHPで以下のようなリンクを生成し、 <form name="hoge" method="post"> <input type="hidden" name="hogehoge"> </form> <a href="javascript:void(0)" onClick="submit('0')">あ</a> <a href="javascript:void(0)" onClick="submit('1')">い</a> <a href="javascript:void(0)" onClick="submit('2')">う</a> <a href="javascript:void(0)" onClick="submit('3')">え</a> <a href="javascript:void(0)" onClick="submit('4')">お</a> POSTで受け取ったデータを再びPHPで使用したいのですが、 (同一ページ内で) 色々調べてみたのですが、いまいちわかりません。 JavaScriptの部分をどのようにしたらよいか、また根本的に間違っていたらどのように変えればよいか、 教えてください。 m(_ _)m

    • ベストアンサー
    • PHP
  • リンクをクリックした時にformからPOST送信したい。

    HTML、PHP、JavaScript等でサイトを作っているのですが・・・。 【実現出来ている例】 <form name="form1" method="post" action="Next.php" onSubmit="return InputCheck()">  <input type="submit" value="送信"> </form>  submitボタンを一つ置いて、それがクリックされた場合に formの内容をPOSTで送信する。 【実現したい例】 <form name="form1 method="post">  <a href="Next.php" onClick="???">???</a> </form>  formの中のリンクをクリックされた場合に、formの内容を POSTで送信したいのですが、その実現方法がわかりません。 GETで送るという手もあり得ますが、今回はどうしてもPOST したいのですが。

    • ベストアンサー
    • HTML
  • POSTとGETを利用しようと

    サブミットのときにはgomiのデータが$_POST['gomi']にセットされキャンセルのときにはgomiのデータが$_GET['gomi']にセットされるようにしたいのですが x.html: <form action="x.php" method="post"> <input type="text" name="gomi"/> <input type="submit" value="set"/> </form> <p><a href="x.php">cancel</a></p> ではもちろんcancelをクリックしても$_GET['gomi']にgomiのデータがセットされません どうしたらできるでしょうか?

    • ベストアンサー
    • PHP
  • <form method=post action="***.cgi">~</form>の場所は?

    CGIでデータを受け渡しするアンケートを作っています。html中に書く<form method=post action="***.cgi">~</form>“~”の場所についてですが質問項目を全て挟まなくてはいけませんか?実は、チェックボックスの「最大2つまで回答可」という部分をJavascriptでチェック個数を超えてチェックした時点でアラートが出るようにしてます。その記述中にすでに<form>~</form>タグを制限をかけたい質問に置いているので、質問全体を<form method=post action="***.cgi">~</form>でくくると入れ子になってしまいます。大丈夫ですか?

    • ベストアンサー
    • CGI
  • GETとPOSTを同時利用したい

    wordpressで下記のようにPOSTを使用して遷移先のメールフォームにデータを渡しています。 コードの作成は(http://blog.goo.ne.jp/xmldtp/e/0884dbe92721ab84cb27d212ca631094)を参考にしました。 <a href="" onclick="document.mail_form.submit();return false;" > <img src="@@@.png" alt="お問い合わせフォーム"> </a> <form action="<?php echo get_permalink( @@@ ); ?>" method='post' name="mail_form" target="_blank"> <input type='hidden' name='post_id' value="<?php echo $post->ID; ?>"> </form> これをそのまま流用し、<form>内の遷移先URLに『?view=english』を追加して英語版での表示切替をしようとしたのですが、これをつけるとPOSTの情報が遷移先に渡らなくなりました。 <form action="<?php echo get_permalink( @@@ ); ?>?view=english" method='post' name="mail_form" target="_blank"> <input type='hidden' name='post_id' value="<?php echo $post->ID; ?>"> </form> どのようにすればPOSTの内容を維持したまま遷移先URLにGETの文字列を追加させることができますか?

    • ベストアンサー
    • PHP
  • javascriptのsubmitを使ってデータをpost送信したい。

    javascriptのsubmitを使ってデータをpost送信したい。 aaa.phpというファイルに複数のチェックボックスがあり、リンクをクリックしたときに チェックされた値のみをbbb.phpへ引き渡したいです。 自分なりに書いてみましたが、bbb.phpへは遷移するものの、データが表示されません。 document.form1.method部分をGETにすると、データは表示されますが、POSTにすると うまく引渡しができません。 的外れな書き方をしているかもしれませんが、どなたかご教授いただけませんでしょうか? よろしくお願いいたします。 【追記】 チェックボックスの数は固定ではなく変動があり、値も実際はランダムです。 デザインの都合上どうしてもaタグでしか記述が出来ません。 ------------------------------------------------------------------------------ 【aaa.php】 <script language="JavaScript"> <!-- function mailform() {  var i = 0;  var chkvalue = "";  var count = 0;  var chk = document.getElementsByName('no');  for(i=0; i<chk.length; i++) {   if (chk[i].checked == true) {    chkvalue += chk[i].value;    count++;   }  }  if(count == 0) {   alert("チェックされていません。");   return false;  } else {   document.form1.action = "./bbb.php";   document.form1.method="post";   document.form1.submit();  } } //--> </script> <a href="#" onClick="send()">bbb.phpへ遷移する</a> <form name="form1">  <input type="checkbox" name="no" value="1"><br />  <input type="checkbox" name="no" value="2"><br />  <input type="checkbox" name="no" value="3"><br />  <input type="checkbox" name="no" value="4"><br /> </form> 【bbb.php】 var_dump($_POST["no"]);

  • どうしてもAタグでsubmitしたい

    <form action="ccenter/index.php?form=2" name="ccenter" method="post" onsubmit="return xoopsFormValidate_ccenter();"> お世話になります。このフォームの送信ボタンをAタグで行うことは可能でしょうか。 xoopsFormValidate_ccenter();は入力チェックです。 当方で, <a href="" onclick="submit()">Submit</a> とし.ても動きません。 初歩的で申し訳ございませんが、よろしくお願いいたします。