
jQueryのblockUIをformのボタンから呼ぶ際に、うまくいかない。
blockUIを以下のように呼んでいます。
<script type="text/javascript" src="jquery/plugin/jquery.blockUI.js"></script>
<script type="text/javascript">
// unblock when ajax activity stops
$(document).ajaxStop($.unblockUI);
$(document).ready(function() {
$('#run').click(function() {
$.blockUI({ message: '<h1>お待ちください...</h1>' });
$.ajax({ url: 'xxxx', cache: false });
});
});
</script>
その上で、
<input id="run" type="submit" value="お待ちください" />
というボタンを単独でつけて押すと、「お待ちください」と表示するところまで
確認できています。
最終的に実現したいことは、formのsubmitボタンを押すことにより、
パラメータを渡した上で、cgiプログラムを実行することです。
<form action="cgi-bin/search.cgi" method="post">
この中に選択条件(パラメーター)
<input id="run" type="submit" value="検索開始">
</form>
現在、blockUIを使わずに、submitボタン押すと、検索CGIが適切に
動くことは確認できています。
そこで、
form action=にどのように書けばパラメーターを持ったまま、BlockUIを呼べるのか。
$.ajax({ url: 'xxxx', cache: false }); の url部分にどのように記述すると
cgiを呼べるのか。(cgi-bin/search.cgi)では動きませんでした。
そのあたりをご教授お願いいたします。
blockUIの解説ページでは、CGIの実行や別ページへの遷移のサンプルがなく
困っております。
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
補足、
ajax.start:でブロックしたんじゃ使い道がないですね。
クリック時点でブロックして、ajax成功したらアンブロックしましょう。
※(全角空白は半角空白に変えてください)
<body>
<form id="sub_form">
<input name="parm1" value="hoge">
<input name="parm2" value="fuga">
<input id="run" type="button" value="検索開始">
</form>
<div id="result"></div>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.4");</script>
<script type="text/javascript" src="/jslib/jquery.blockUI.js"></script>
<script type="text/javascript">
$(function(){
$('#run').click(function() {
$.blockUI({ message: '<h1>お待ちください...</h1>' });
$.ajax({type:"POST",url:"cgi-bin/search.cgi",cache:false,
data:$("#sub_form").serialize(),
success:function(data){
$.unblockUI();
$("#result").html(data);
}
});
});
});
</script>
</body>
ご丁寧に回答いただいていたにもかかわらず。
気づいておらずにお礼書きもれ、大変失礼いたしました。
本当に申し訳ございませんでした。
教えていただいたように今後試してみます。
No.1
- 回答日時:
誤解されてる部分が、あるかと思います。
ajaxというのはページ遷移をともなわずにcgiへのリクエストを受け取る
機能です。フォームのサブミットはajaxリクエストではありません。
おっしゃてるイメージを無理やりajaxで書けば↓となります。フォームのサブミット
はしません。
<form id="sub_form">
<input name="parm1" value="hoge">
<input name="parm2" value="fuga">
<input id="run" type="button" value="検索開始"> <=注意サブミットじゃない
</form>
<div id="result"></div>
<script type="text/javascript">
$(function(){
$('#run').click(function() {
$.ajax({type:"POST",url:"cgi-bin/search.cgi",cache:false,
// フォームのエレメントをpostパラメーターにシリアライズ
data:$("#sub_form").serialize(),
start:function(){$.blockUI({ message: '<h1>お待ちください...</h1>' })},
success:function(data){
$.unblockUI();
alert("検索終了しました");
$("#result").html(data); // <-例です
}
});
});
});
ありがとうございました。
ご回答いただいたとおり、根本的に勘違いしていたようです。
丁寧な回答ありがとうございました。
かきこんでいただいたコードを参考にしてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で、特定の文字列を含...
-
バッチファイル 特定ウインドウ...
-
1枚の画像をクリックすると複数...
-
入力フォームの値をQRコードで...
-
VBA コンボボックスの値をスピ...
-
vbsで図形内テキストの置換方法
-
PYTHONのtkinterについて
-
ワードでA3横の画面にして、文...
-
自作の地図をグーグルマップの...
-
1w=1j.s
-
GASでスプレッドシートの一番上...
-
クライアントサイドとサーバー...
-
PDFを(htmlのように)無限に縦...
-
php コールバック関数
-
ナイトボットのAliasについて
-
これってなんの電話かわかりま...
-
VBAでクイズゲームの作り方
-
以下のURL入れますか?皆さんは↓
-
画像のドットの部分が抜けてい...
-
Chinapost こよパズルどう動か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavascriptからPHPへのAjax通信...
-
jQuery を外部ファイルから呼び...
-
jQueryで外部テキストファイル...
-
jQueryを使いformでsubmitした...
-
AJAX+PHPでセレクトボックスの連動
-
Ajax サーバーに負荷かかります...
-
jQueryのblockUIをformのボタン...
-
ajaxを使ったページがSEOで不利...
-
ajaxでPHPにPOST送信して結果デ...
-
ajax + PHPによるエラーの返し...
-
ajaxでPHPにPOST送信して結果デ...
-
ajaxからphpにpsotしたときの日...
-
jquery,ajaxによるphp通信でnull
-
Ajax を Fetch API に 書き換え...
-
IE8 form action属性をはずす...
-
JQueryの変数の扱いで弱ってい...
-
Ajaxでフォームデータを連続登...
-
jQuery3 reset()が効かない。
-
jqueryでAJAX非同期通信をしてp...
-
Ajax・jQueryでGETとPOSTする方法
おすすめ情報