- 締切済み
formの送信について
いつもお世話になっております。 今回はFORMの送信についてお聞きします。 htmlでフォームの内容を送るには 1、<form action="xxx.cgi"> <input type="submit"> として送信 2、prototype.js等を使って function send() { var str = Form.serialize('form1'); new Ajax.Request ( "xxx.cgi", { "method": "post", "parameters": str, onSuccess: function() } ); } <form action="" id="form1"> <button onclick="send()"> があるとわかったのですが、両者の違いがわかりません。 2番だと非同期にもできるということはわかるのですが、 そのほかの違いをご教授願います。
- iec1128
- お礼率43% (70/161)
- JavaScript
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
そもそも2はjavascriptでデータをおくっているので、javascript非対応 もしくは使用許可していないブラウザではデータが送れません また2はAjaxをつかって、画面全体の更新をせずデータをおくろうと しているのではないでしょうか?
関連するQ&A
- AJAXでformから値を飛ばす
AJAXを勉強してます。 formから値を飛ばす事はできたのですが、 直リンクというのはできないのでしょうか? uri ="http://www.○○○.cgi";の部分に直のアドレスを入れたいのですが、教えていただけないでしょうか? よろしくお願いいたします。 <script src="prototype.js"></script> <script> function dosubmit( ) { uri ="http://www.○○○.cgi"; new Ajax.Updater( 'result', 'uri', { method: 'post', parameters: $('myform').serialize() } ); $('myform').reset(); } </script>
- 締切済み
- JavaScript
- AJAXでformから値を飛ばす
困り度: すぐに回答を! AJAXを勉強してます。 formから値を飛ばす事はできたのですが、 直リンクというのはできないのでしょうか? uri = 'http://www.○○○.cgi' ;の部分に直のアドレスを入れたいのですが、教えていただけないでしょうか? よろしくお願いいたします。 <script src="prototype.js"></script> <script> function dosubmit( ) { uri ='http://www.○○○.cgi'; new Ajax.Updater( 'result', 'uri', { method: 'post', parameters: $('myform').serialize() } ); $('myform').reset(); } </script>
- 締切済み
- AJAX
- javascript form送信後の動作
以下のスクリプトでiframeにデータは送信できているんですが、<input type="text">に入力したテキストが残ってしまいます。どのように記述したらうまくいくでしょうか? <script type="text/javascript"> function send(){ var frm=document.txt_submit; frm.submit(); frm.reset(); } </script> <form name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" name="ctxt" size="20" value=""> <input type="button" value="送信" onclick="return send();"> </form>
- ベストアンサー
- JavaScript
- javascript confirmでFORM送信
javascript confirmにて「この点数で良ければ送信する」というものを考えています。 この点数部分は変数になる予定であり、javascript内部で生成されます。 まずは、変数ではなく固定値として、javascriptの中にある数値を<form></form>の中に生成することを考えましたがいきなりつまずきました。 「100という数値を送信」するつもりだったのですが、うまく送信することが出来ません。 どこを修正すればいいかご教示いただきたくお願いいたします。 <html> <head> <title>submit</title> </head> <script language="javascript"> <!-- function frmSubmit() { var errFlag=true; if(errFlag==false) { return; } if(confirm("100点です。送信しますか?")) { document.frm.submit(); document.getElementById("plus").value ="100"; } else { } } //--> </script> <body> <form method="post" action="form.cgi" name="frm" target="_self"> <input type="HIDDEN" id="plus" value="" /><br /> <input type="button" value="send" onclick="frmSubmit();"> </form> </body> </html>
- ベストアンサー
- JavaScript
- formによるパラメータ送信がうまくいきません
こんばんは。 HTML初心者です。 formによるパラメータを送信しようと考えているのですが、 送信方法によってパラメータが異なってしまい、困っています・・・。 以下のようなformを使って、パラメータをpostしています。 <form name="form1" action="http://xxx/xxx/xxx" method="post"> <input type="text" name="text1"> <input type="submit" value="sousin" name="submit1"> </form> 送信してみたところ、送信方法によって、送るパラメータに差異があることに気が付きました。 ************************************************** 1.テキストに文字列を入れて、送信ボタン(sousin)を押す。 ->リクエストパラメータが、submit1=sousin と text1=文字列 になる。 2.テキストに文字を入れて、フォーカスがテキストにある状態で、Enterを押す。 -> リクエストパラメータが、text1=文字列 だけになる。 ************************************************** 1.と2.どちらの場合でも、 submit1=sousin と text1=文字列 を送りたいと考えています。 クエリストリングは使いたくないので、 onclickをつけてみたり、JavaScriptで少し考えてみましたが、 どうしてもうまくいきませんでした・・・。 2.のように、Enterを押したときでも、 submit1=sousinを送るようにするのはどうしたらよいでしょうか?? 宜しくお願い致します。
- ベストアンサー
- HTML
- FORM1つでリンク
いつもお世話になっております。 既にある質問も調べてみたのですが <form name="top" method="post" action="xxx.cgi"> <input type = "hidden" name="data" value="open"> <a href="#" onClick="submit();">オープン</a> <input type = "hidden" name="data" value="close"> <a href="#" onClick="submit();">クローズ</a> </form> FORMを1つで、hrefのリンクみたいにして違う値を 送信したいのですが、上記だと 二つ目のリンクが上手く出来ません。 どなたかお知恵をお貸し下さい
- 締切済み
- JavaScript
- prototypeでajaxをする時に、onSuccessで指定した関数の戻値を取得する方法
こんにちは、Ajax初心者です。 prototypeでAjaxをする時に、 new Ajax.Request(url, { method: 'get', onSuccess: getDat, onFailure: showErrMsg, parameters: paramList }); と言う風に書きますが、通信が成功した時に実行されるonSuccessのgetDataと言う関数の戻値を取得したいのですが、どうすればよいのでしょうか? 自分なりに調べてみると、prototypeのbindを使えばいけそうな感じなのですが、bindの使い方も良く分かりません(いろいろ調べてみたのですが、、、)。どうか詳しい方お願いします。
- 締切済み
- JavaScript
- Ajaxのエンコードで
私はshift_JISで作成したCGIのページがあるのですが、 Ajaxを導入しようとしたときに、Ajaxというか Javascriptでは、utf-8しか認識しないととあるサイトに書いてあったのですが、 そのCGIのページをphpに変更するにはものすごく多大な時間が 必要になってしまうんですが、CGIをutf-8仕様にするのも大変です AjaxでShift_JISに変換するような事はできませんでしょうか? http://javascriptist.net/ref_prototype/ajax.periodicalupdater.html のサイトに乗っている <script type="text/javascript" src="/js/prototype.js"></script> <script type="text/javascript"> var myajax; function execute() { myajax = new Ajax.PeriodicalUpdater( "container", "./member.cgi", { "method": "get", "parameters": "id=$id", frequency: 5, // 5秒ごとに実行 onSuccess: function(request) { // 成功時の処理を記述 // alert('成功しました'); // jsonの値を処理する場合↓↓ // var json; // eval("json="+request.responseText); // ↓IEでもキャッシュを読み込まずに毎回リモート接続を実行するためのコード(パラメータの書き換え) var str = myajax.options.parameters; var hash = str.parseQuery(); hash["ajax_request_id"] = Math.random(); hash = $H(hash); myajax.options.parameters = hash.toQueryString(); }, onComplete: function(request) { // 完了時の処理を記述 // alert('読み込みが完了しました'); // jsonの値を処理する場合↓↓ // var json; // eval("json="+request.responseText); }, onFailure: function(request) { alert('読み込みに失敗しました'); }, onException: function (request) { alert('読み込み中にエラーが発生しました'); } } ); } </script> を使用して自動更新をしようと思っているのですが
- ベストアンサー
- JavaScript
- ajaxでtxtを取得する
基本的なことかもしれませんが、質問します。 prototypeのライブラリを使ってajaxに挑戦しています。 ******************** var D = { method : "get", onSuccess : function(){...} }; new Ajax.Request("dara.txt", D); ******************** この方法だと、キャッシュ(?)を読み込んでしまうのか、 cgiでの変更点がすぐに反映されてこないので、このようにしました。 ******************** var D = { method : "get", parameters : "n=" + Math.random(), //←ここを追加 onSuccess : function(){...} }; new Ajax.Request("dara.txt", D); ******************** これで、毎回ちゃんとサーバーから読み込むようになりましたが、 このスクリプトを実行するたびにインターネット一時ファイルに保存されるので、 ものすごい数のテキストファイルが保存されてしまいます。 毎回サーバーから読み込んで、且つ、一時ファイルに残さない方法をご存知の方は、ご教示願います。
- ベストアンサー
- AJAX
- form 内 onChange
恐れいります。 <form>内で、もう一つ<form>を作成し、送信したいのですが、 なかなかうまくいきません。form内のformは、selectボックスで、選択時に自ページにsubmitさせるようにしたいのですが。。 <form action="./xxx.cgi" method="POST"> <input type="text" name="xxx"> <form action="./" method="POST"> <select name="YYY" onChange="this.form.submit()"> <option value="ddd">ddd <option value="eee">eee </select></form> <input type="text" name="xxx"> <input type="submit" value="送信"> </form> よろしくお願いします。
- ベストアンサー
- HTML