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.3
- 回答日時:
> jQuery.get( url, data, callback(data, textStatus, XMLHttpRequest), dataType)
この書き方だと、第二引数は「callback()を実行した戻り値」ですが、function callback(){}は、ちゃんとfunctionオブジェクトを返していますか?
jQuery.getが終わってからcallbackを実行したいなら、
jQuery.get( url, data, callback, dataType);
このように書かないと行けないと思いますが。
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.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で質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Excel(エクセル) 格納したデータを配列のように扱う方法はありますか? 8 2023/06/05 08:53
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
ジャンクの箇所を一切書かずに...
-
呼び出し元のURLを知りたいのです
-
ajaxでhtmlを返して画面に描画…...
-
リンクを押すとEXEファイルを実...
-
HTMLでDBからデータを表形式で...
-
Response.Write(変数)
-
JQuery サーバー上にアップする...
-
webシステムでchrome
-
ローカルでのhtmlチェックにつ...
-
ソースのリンク先などの暗号化...
-
PHPでフォームの自動入力できま...
-
ブラウザを閉じた瞬間にログアウト
-
ASP.NET(VB)VBソースからJavas...
-
ブラウザ(IE)からEXEファイル...
-
RS-232Cの通信方式に関して。
-
[JavaScript] preven...
-
非同期通信を使うタイミングが...
-
【JavaScript】confirmのボタン...
-
ローカル用HTMLファイルの安全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jsonテキストデータの並び替え...
-
テキストファイルの内容を変数...
-
jQueryでAJAXを利用しJSONデー...
-
VSCodeにて「終了タグ」の背景...
-
http上でrequest されたxmlファ...
-
JSONのコメント行の書き方...
-
queryselctorのセレクタの後ろ...
-
json形式データのデータ連携に...
-
gulpfile.jsとpackage.jsonの読...
-
教えてください!html5.jpを使...
-
jQuery.getでレスポンスデータ...
-
マピオン・ラボの地図はドラッ...
-
csvを使用したデータバインド(...
-
jQueryクックブック レシピ5.11...
-
フォームからjQuery,jQuery.jso...
-
ASP.NET(VB)VBソースからJavas...
-
【JavaScript】confirmのボタン...
-
HTMLでDBからデータを表形式で...
-
DirectXとOpenGLはどちらが動作...
-
saved from url=(0013)abou
おすすめ情報
