jQuery.getでレスポンスデータを取り出す方法
いつもお世話になっています。
jQueryのajaxを用いてサーバのphpとデータをやり取りしています。
以下の件に関して質問させていただきます。
jQuery.get( url, data, callback(data, textStatus, XMLHttpRequest), dataType)
でレスポンスデータを取り出す方法がわかりません。
callbac関数に引数で渡されたdataをcallback関数の中でalert(data);としたり、htmlのタグに書き込む操作はうまくいくのですが、callbackの引数dataをjQuery.getの外に取り出すにはどのようにすればよいのでしょうか?
よろしくご教授お願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
jQuery.get()は、非同期(async=true)のXMLHttpRequestを出しています。
非同期ですから、phpから応答が帰ってくるまで、responseTextは空ですし、
XMLHttpRequestのステータスもハンドリング出来ません。いつ応答が帰ってくるかをハンドリングするのが手間なので、コールバック関数を使うのです。
jQuery.get()では、リクエストが正常に投げられ、サーバーが正しく(?)結果を返した時のみ、結果を引数として、コールバック関数が呼ばれるます。
この機能を使ってコーディングを短くしているという訳です。
だから、
var res = jQuery.get(,,,).responseText;
はよろしくないと思います。
同期通信(async=false)なら別ですから、こうすればうまくいくかも...
jQuery.ajax({
async:false
});
var res = jQuery.get(,,,).responseText;
この回答への補足
お礼への補足で恐縮ですが、たとえば・・・・
var strUTF = php({func: 'mb_convert_encoding',argv: 'strSJIS,UTF-8,Shift_JIS',require: ''});
のようなことがしたいわけです。
本題と少し離れますが、javascriptで便利な関数を集めたライブラリが
あればご紹介いただければ幸甚です。(ajax,DOM操作のライブラリは多数ありますが・・・・・)
失礼しました。
明快なコメントをありがとうございます。
jQuery.ajaxで同期通信して何とかなりそうです。
私の場合サーバ側の処理にそれほど時間はかからず、その間クライアントで特別な作業もしませんので同期通信で十分です。
今までC++,javaでstandalone aplicationを、またphpでweb applicationwを作ってきましたが、webはサーバupの必要やactionに画面遷移を伴うなどの欠点があり、またstandalone application開発の困難さはwebの類ではありませんでした。
その点jQuery/ajaxを使ったapplication(html/hta)が気に入っています。
しかし、javascriptはphpに比べるとlibraryが少なく、ちょとした事も最初からcodingする必要がありますので、phpをWeb Servise的にajaxで利用することを考えています。
その過程で出てきた疑問です。ありがとうございました。
No.3
- 回答日時:
> jQuery.get( url, data, callback(data, textStatus, XMLHttpRequest), dataType)
この書き方だと、第二引数は「callback()を実行した戻り値」ですが、function callback(){}は、ちゃんとfunctionオブジェクトを返していますか?
jQuery.getが終わってからcallbackを実行したいなら、
jQuery.get( url, data, callback, dataType);
このように書かないと行けないと思いますが。
No.1
- 回答日時:
意味がよくわかりませんが、単に他の関数に値を引渡したいだけですか?
だとすると、ajaxとかライブラリー以前の問題だと思いますが....
例えば、
jQuery.get( url, data, callback_hoge(data, textStatus, XMLHttpRequest), dataType);
function callback_hoge(data, textStatus, XMLHttpRequest){
other_func(data);
}
function other_func(data){
alert(data);
}
あるいは、引渡しが面倒ならグローバルな変数を定義しておいて、
var my_result;
jQuery.get( url, data, function(data, textStatus, XMLHttpRequest){
my_result=data;
other_func();
}), dataType);
function other_func(){
alert(my_result);
}
とか...
この回答への補足
早速回答ありがとうございます。
callback_hogeの中で処理をすればのですが以下のようなことができないかと思いました。
function button_click_proc(){
var res = jQuery.get( url, data, callback_hoge(data, textStatus, XMLHttpRequest), dataType).responseText;
$("#fuga").html(res);
}
jQuery.get()はXMLHttpRequestオブジェクトを戻り値に返すとのことで、urlが単純なsample.txtの場合、引数data, callback_hoge,dataTypeなしでresponseTextを使用してうまくいく例があるのですが、引数data, callback_hoge,dataTypeを伴ってsample.phpにリクエストした場合「この操作を完了するのに必要なデータは、まだ利用できません。」とのエラーが出ます。
引数で受け渡しする場合は最後にcallback_hogeに戻るのでグローバル変数をセットする方法が私の意図に近いかもしれません。ありがとうございます。
responseTextの使い方について何かヒントかコメント頂ければ有難いです。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Google Apps Script】「ライ...
-
初心者です。gulpでコンパイル...
-
追加ボタンを押した際に ok ボ...
-
ジャバスクリプトについて。
-
jQueryローディングアニメーシ...
-
フォームが空欄の時にフォーム...
-
イラストレーター、縦中横のシ...
-
画面に表示したらアニメーショ...
-
switch文のswitch(n)の部分を複...
-
jsで、len~(__=C.value)]||val...
-
食材の期限を管理するためにGAS...
-
前回の質問の続き function mov...
-
このプログラムに、王手をかけ...
-
前回の質問の続き function mou...
-
このプログラムに王様の逃げ道...
-
ビデオのJSについて
-
鍵盤アプリで、スマホの画面に...
-
<div>のタッチ状態を維持したま...
-
jQueryでシンセサイザーを作っ...
-
プログラミング 学習
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
テキストファイルの内容を変数...
-
【PHP,JavaScript】文字が誤変...
-
JSONのコメント行の書き方...
-
json形式データのデータ連携に...
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
ASP.NET(VB)VBソースからJavas...
-
saved from url=(0013)abou
-
リンクを押すとEXEファイルを実...
-
subversionでコミットしたらftp...
-
HTMLでDBからデータを表形式で...
-
PHPでフォームの自動入力できま...
-
webシステムでchrome
-
ローカル用HTMLファイルの安全...
-
読み込み中に「Now Loading」を...
-
JSTLを利用してJavascriptの結...
-
JQuery サーバー上にアップする...
-
php ob_flushが全く動作しない
-
呼び出し元のURLを知りたいのです
おすすめ情報