• 締切済み

X-JSON

X-JSONについて質問です。 最近、jsをはじめたばかりの素人ですが、prototype.jsをライブラリとして使用してみようと思っています。 しかし、JSONからX-JSONに乗り換えるところで詰まっています。 まず、「"X-JSON":~」と指定してとなっていますが、なんとなくそれっぽくやってみても動きません。 ローカルのX-JSON形式で書かれたテキストファイルを読み込んで、単にHTML化して表示したいだけなのですが、うまくいきません。 ネットで調べられる限りのサンプルソースをまねてみたつもりですが、上手くいきませんでした。 ・簡単に動くサンプルソースをお持ちの方 ・わかりやすい解説のページなどを教えていただける方 環境は・・・ WinXP SP2、IE6 SP2、prototype.js 1.4.0 になります。 出来れば、複数レコードのデータを下に一覧テーブルを生成できるようなものがあると助かります。 ぜひ、よろしくお願いいたします。

みんなの回答

noname#22259
noname#22259
回答No.1

--[untested]-- cgi = CGI.new puts cgi.header({'X-JSON', '({"name": "data what you want"})'}) puts '<div>test</div>' ------- <html> <head> <script type="text/javascript" src="prototype.js"></script> <title>untitled</title> <script type="text/javascript"> onload=function () { var svr = 'xxx.cgi'; var opt = { onComplete: complete }; new Ajax.Request(svr, opt); } function complete(resp) { $('txa').value = resp.responseText; } </script> </head> <body> <textarea id="txa" rows="10" cols="30">

関連するQ&A

  • JQueryを用いたJsonとの非同期通信について

    下のソース //画面構築完了後 $(function() { //ボタンのクリックイベントで $("#btn_1").click(function(){ //data/sample.jsonのデータを取得し、jsonというオブジェクトに入れる $.getJSON("fdas.json", function(json){ var rows = ""; //テーブルとして表示するため、htmlを構築 //for (i = 0; i < json.length; i++) { rows += "<tr>"; rows += "<td>"; for (var kaey in json) { rows += (json[kaey]); } rows += "</td>"; rows += "</tr>"; //} //テーブルに作成したhtmlを追加する $("#tbl").append(rows); }); }); }); このソースに <input id="btn_1" type="button" value="データ取得" /> を使ってボタンを押しているのですが、FirefoxだとJsonのデータを更新してから押してもデータが変更されず、ChromeだとF5とかを幼くても更新されます。 ブラウザによって挙動が違うのはソースが間違っているからですか? それともJsにもHTML5やCSS3のように、対応ブラウザなどがあるのでしょうか??? また自分はまだよくわかっていないのですが、prototype.jsを用いた場合のほうが簡単だということがありましたらそちらも教えていただけると幸いです 教えてください!!!

  • Jquery JSON形式で読みだした後

    http://kolber.github.com/audiojs/demos/test6.html ここのサイトのaudio.jsの再生リストを表示するjqueryを使用しています。 このjqueryに多少手を加えて、Jsonデータから再生リストのパスを取得して、<li>タグに自動生成しています。 ですが、このaudio.jsのサンプルは、HTMLに直接書いたリストしか識別してくれません。 (直接HTMLに書いたものだと、リストからaudio再生してくれます) JSONからパスを取得して自動生成したリストだとaudio再生が機能しません。 error loading undefinedが表示されます。 (HTMLソースの方にはパスファイルが正しく表示されています。(直接打ち込んだ時と同じパス)) この原因と解決法を教えていただけないでしょうか。

  • GoogleMpsAPIのjson.jsによる読み込み

    GoogleMapsAPIの勉強をしています、プログラミング初心者です。 「GoogleMapsAPI徹底活用ガイド」という解説本を参考にしています。 中心位置情報をJSON形式で別ファイルに記述したものをjavascriptプログラムで読み込み、実行、googlemapに反映させたいのですが、うまくいきません。 JSON in JavaScript のページ(http://www.json.org/js.html)のリンクからJSON処理ライブラリjson.jsのスクリプトをコピー、私のサーバー内に保存し、 <head></head>内で <script type="text/javascript" src="json.js" charset="utf-8"></script> とsrc属性にjson.jsを指定、 javascriptのfunciton {}内で、 GDownloadUrl( "center.json", mySetCenter ); function mySetCenter(data) { var obj = data.parseJSON(); map.setCenter( new GLatLng(obj.lat, obj.lng), obj.zoom ); } としています。 center.jsonというのが、JSON形式の位置情報ファイルです。 解説本のサンプルを使用しているので、スクリプトの間違いではないと思います。 json.jsを使わず、javascriptでeval関数を使う場合は、正常にJSON形式の中心位置情報のデータが読み込まれ、地図が表示されます。 おそらく、json.jsのダウンロード方法やサーバへの配置方法などが間違っているではないかと思いますが、参考になる資料がなく困っています。 どなたかご教授お願いいたします。

  • JSONのデータから商品名の取得の仕方

    今現在下記の記述でJSONを取得しています。 ===== <html> <head> <title>JSONのデータを使ってみる</title> </head> <script type="text/javascript" src="./prototype.js"></script> <script type="text/javascript"> function execute() { var url = './ItemSearch_json.php'; var paramList = "keyword=" + encodeURIComponent("ふくろう"); var a = new Ajax.Request( url, { method: 'get', parameters: paramList, onSuccess: function(request) { // alert('読み込み成功しました'); // jsonの値を処理する場合↓↓ var json; eval("json="+request.responseText); }, onComplete: function(request) { alert('読み込みが完了しました'); $('container').innerHTML = request.responseText; // jsonの値を処理する場合↓↓ var json; eval("json="+request.responseText); }, onFailure: function(request) { alert('読み込みに失敗しました'); }, onException: function (request) { alert('読み込み中にエラーが発生しました'); } } ); } </script> <body> <div id="container">content</div> <button onclick="execute()">サンプル実行</button> </body> </html> ===== このままだと、プレーンテキストは表示されるのですが、商品名や価格の一覧などを選択して表示できません。 evalなどを使うのかなと思うのですが、はっきり分かりません。 ヒントを教えていただけないでしょうか。

    • ベストアンサー
    • AJAX
  • Ajaxで、JSONの添え字を表示する

    以下のようなソースで、jQueryで、ajax_abc.htmlのid:Abcのボタンを押して、json_abc.phpから、JSON形式で、添え字がMySQLのabcテーブルのid列、値が同じMySQLのabcテーブルのalphabet列の値を全行分受け取り、<p>1:A</p><p>2:B</p><p>3:C</p>というような形でhtmlを生成したいのですが、値を表示することはできるのですが、添え字を表示する方法がわかりません。 どういう風にやれば、表示できるか教えてください。 [ajax_abc.html] <script type="text/javascript"> $(function(){ $("#Abc").click(function(){ $.post("json_abc.php", { }, function(json){ $('#Display').html("<p>"+json[1]+"</p>" + "<p>"+json[2]+"</p>" + "<p>"+json[3]+"</p>") }); }); }); </script> [json_abc.php] <?php $pdo = new PDO('mysql:dbname=test; host=localhost; charset=utf8', 'root'); $st = $pdo->query("SELECT * FROM abc"); $abc = array(); while ($row = $st->fetch()) { $abc += array ( $row['id'] => $row['alphabet'] ); } header('Content-Type: application/json; charset=utf-8'); echo json_encode($abc); [MySQLのabcテーブル] INT: VARCHAR 1: A 2: B 3: C

    • ベストアンサー
    • AJAX
  • prototype.jsでディレクトリが異なる外部HTMLを読み込みで

    prototype.jsでディレクトリが異なる外部HTMLを読み込みできません。 よろしくお願い致します。 prototype.jsを使用して「sample.html」に「header.html」を読み込みたく、http://suh45.blog9.fc2.com/blog-entry-91.html のサイト様を参考にしています。 「header.html」が「sample.html」に対して、同階層または下階層にある場合は問題なく読み込みできるのですが、下記コードのように、sample.htmlが置いてあるディレクトリと同じ階層にあるディレクトリ(hogehoge)内にheader.htmlを移動させると読み込むことができなくなってしまいます。 ■読み込みたい相対パス <script type="text/javascript"> <!-- include("header", "../hogehoge/header.html"); // --> </script> これはこういったものなのでしょうか? ぜひお教え頂けると幸いです。

  • 【java】リンクを押した時の動作を変えたい

    javascriptについてご質問です。 初歩的な質問で申し訳有りません。 【外部JSファイル】 sample1.js sample2.js を用意し、 【HTMLソース】 <a href="#sample1">SAMPLE1</a>              //sample1.jsで動作 <a href="#sample2">SAMPLE2</a>              //sample2.jsで動作 上記のように記述した場合、別々の外部JSファイルで動作を指定することは可能でしょうか? 参考になるサイト等ございましたら、お願い致します。 何卒、宜しくお願い致します。

  • PHP4でのAjax データ出力形式について

    こんにちは PHP4.4.9でAjax通信時のデータ出力形式をどうしようか悩んでいます。 やりたい事は、HTMLのSELECTタグの中身を入れ替える事です。 普段は主にjsonでデータのやり取りをしていますが、PHP5.2以降という事でXMLにしようとしたのですが、今時じゃないのかなかなかサンプルが見つからず・・・ PEARやPECLでのライブラリ等の追加は都合上、行えません。 自前でXMLやJsonを作る事はしたくないので、よいサンプル等あればご教示ください。

    • ベストアンサー
    • PHP
  • GPL2ライセンスのJSを使用した場合の公開義務

    GPL2ライセンス対象のJSを使用した場合、どこまでソース公開しなければいけませんか? 仮にprototype.jsやjQueryといったライブラリがGPLライセンスだったとして、 そのライブラリを改造し、「jQuery2」といった新ライブラリとして再配布する場合は GPLライセンスとなるので、「jQuery2」のソース公開が必要だと認識しておりますが、 新ライブラリとして配布するのではなく、そのライブラリをカスタマイズして自身のWebサービスに使用する場合は、どこまでソース公開が必須なのでしょうか? たとえば、教えて!gooのようなサイトを立ち上げたとして 画面描画部分の一部にGPLライセンスのライブラリを使うとすると、 サーバ側のソースコードから何までダウンロード出来るようにしなければならないということになるのでしょうか? ライブラリを一部カスタマイズしてWebサービスを公開するだけで、ライブラリの再配布は目的とはしません。 ライセンスに詳しい方、調べた事がある方ご回答お願いしますm(_ _)m

  • ajaxとphpでapiのデータ取得

    上手にお伝えできるか不安ですが、以下の事象の原因で考えられるものがありましたら、アドバイスいただきたいです。 [処理内容] js(ajax)でphpをたたいて、GAのapiに接続、ページビューを取得して その取得内容もとにphpで静的ファイルを生成(jsonやhtml)して、任意の箇所で表示させています。 アクセスランキングのようなものになります。 ---------------------------------------------------- jsでphp呼び出し→phpでGAにアクセス→GA→phpで受け取る→jsonやhtml生成 ---------------------------------------------------- [気になる事象] GAからのデータの取得やjsonの生成は概ねうまくいっているのですが、時にデータが取得できない時があります。 何故かphpファイルを更新する(ソースに改行を加えただけ)と正しいデータが取得できたりします。 そんなことが動作に影響するのかわからないのですが、また1日後とかにデータを取得して表示させようとすると、 phpファイルを更新しない限り前回取得した状態から更新されなくなります。 キャッシュみたいなものが介在するのかわからないのですが、ajaxの部分の記述でcashはfalseとしています。 ちなみにGAの管理画面ではページビューが取れているので、apiとphpの間が怪しいといえば怪しそうな気もしています。 尚、静的ファイル(jsonやhtml)のタイプスタンプの更新は、js(ajax)にアクセスする度に正しく行われている為、 それらのファイルの生成そのものは問題ないと思われます。 拙い説明で恐縮ですが、 どうぞよろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう