- ベストアンサー
JavaScriptでサーバー側のアクセスカウントを取得したい
- JavaScriptを使用して、サーバー側に保管されているアクセスカウントを取得したいです。
- 現在のコードでは、get_access_count.phpからアクセスカウントの情報を取得できません。
- Ajaxを使用して非同期通信を行い、アクセスカウントの値を取得する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 呼び出し側で var count = getAccessCount(); alert ( count ); getAccessCount()側で // このcountの値を・・・ return count; のような感じで作っているなら値は入ってきません。 非同期で通信処理を行っているのでgetAccessCount()を呼び出してもカウント値を取り終わる前に処理がすすんでいます。 やるとしたら以下のように同期通信にて取得するようにすれば値は入りますが、 通信開始から通信終了までブラウザはほかの処理を受け付けなくなります。 function getAccessCount() { var returnCount = -1; $.ajax({ type: 'post', url: '取得用.php', cache: false, async: false, data: {}, success: function(count) { returnCount = count; }, error: function() { alert ( 'error' ); } }); return returnCount; } どこか画面上に値を表示するとかであれば非同期通信にしたうえでsuccessの中に処理を書くことをオススメします。 $.ajax({ type: 'post', url: '取得用.php', cache: false, data: {}, success: function(count) { $('#count').html(count); }, error: function() { alert ( 'error' ); } });
その他の回答 (2)
- ONEONE
- ベストアンサー率48% (279/575)
ちょっと勘違いしていました。 非同期通信のレスポンスデータは戻り値にはできませんが、 関数として扱いたい場合は下記のように記述すればよいです。 getAccessCount(function(count){ alert(count); }); function getAccessCount(handleData){ var sentdata = { }; $.ajax({ type: 'post', url: 'php/get_access_count.php', cache: false, data: sentdata, success: function(count) { // このcount の 値を getAccessCount()の戻り値にしたい handleData = count; }, error: function() { alert("エラー"); } }); }
お礼
なんどもご回答ありがとうございます!申し訳ありませんが、他の回答で解決しました。ありがとうございました。質問の仕方が悪くて、回答しづらかったことをお詫びします。
- ONEONE
- ベストアンサー率48% (279/575)
そのURLに同期的にPOST(必要なパラメータを渡して普通のサブミットで遷移)したらブラウザ上に数字が表示されますか?
お礼
ご回答ありがとうございます。 Ajaxを使うなら、後者の方法がいいのでしょうが、前者のやり方が、やりたかった方法です。これで実際に組んでみます。ありがとうございました。