電子書籍の厳選無料作品が豊富!

JavaScriptの件で、質問させてください。
どうしても解決できない問題がありますので、よろしくお願いします。

やりたいこと:csvファイル(日本語カラム名)の内容をブラウザに表示させたい。

状況:JavaScript 、html初心者です。
   JavaScript内でdocument.writeを使用してhtml文を書いています。
   csvファイルのカラム名が日本語の場合、ブラウザへの表示に失敗※します。
   ※カラム名だけ表示されて実際データが表示されない。

   下記の例の場合、csvファイル内のカラム名を"日時"、"B"、"C"にしました。
   実行するとデータは"B"、"C"の部分だけ表示されて、"日時"の部分は空白になります。
   尚、csvファイルの"日時"を"A"にして、ソースも"A"を読むように変更すると
   データは正常にブラウザに表示されます。

   ※JavaScriptをやめて、htmlだけで記述すると日本語カラム名でも
    正常に表示されます。

教えていただきたいこと:
   ・ソース抜粋部分に記述ミスはありますでしょうか?
   ・JavaScript?document.write?の記述制限でしょうか?
   ・カラム名をアルファベットにすると正常に表示されるので、
    不具合の原因はソース抜粋部分にあると思うのですが、
    その他の部分でエラー原因となりうる場所はありますでしょうか?


ソース一部抜粋
document.open();
document.write("<object id='ID1' classid='clsid:333C7BC4-460F-11D0-BC04-0080C7055A83'>");
document.write("<param name='DataURL' value='test.csv'>");
document.write("<param name='UseHeader' value='true'>");
document.write("</object>");
document.write("<table datasrc='#ID1' border=1>");
document.write("<thead><tr>");
document.write("<th>日時</th>");
document.write("<th>場所</th>");
document.write("<th>参加人数</th>");
document.write("</tr></thead>");
document.write("<tr>");
//document.write("<td><span datafld='A'></span></td>");
document.write('<td><span datafld='日時'></span></td>');
document.write('<td><span datafld='B'></span></td>');
document.write("<td><span datafld='C'></span></td>");
document.write("</tr>");
document.close();

質問すること自体も初めてなので、至らない点も多々あると思いますが
よろしくお願いします。

A 回答 (4件)

データバインドの<object>タグの属性で、文字コード等いろいろパラメータ指定


出来るみたいです。
<object id='ID1' classid='clsid:333C7BC4-460F-11D0-BC04-0080C7055A83' CharSet='shift-jis'>

よく似たサンプル見つけました。
http://www4.airnet.ne.jp/hasikun/webtech/databin …

解説は
http://www.makoto3.net/document/databind/databin …
に詳しい

それにしても、何故、document.writeなのか
それより、何故いまさらIEだけのデータバインド使うのか

この回答への補足

>それにしても、何故、document.writeなのか
>それより、何故いまさらIEだけのデータバインド使うのか

初心者で、それしかわからないからです(;_;)

補足日時:2010/09/15 22:41
    • good
    • 0
この回答へのお礼

お礼が遅れてすみませんでした。
ご回答ありがとうございます。
URL参考にさせていただきましたところ、とてもわかりやすかったです。
その他、色々と試してみましたが、document.write部分の記述は間違っていないようです。
問題は別にありそうなので、本件につきましてはとりあえず一度閉じさせていただきます。
ありがとうございました。

お礼日時:2010/09/15 22:38

No.2です。



>実際のソースはご指摘通りに修正されていますが、動きません。
とありますが、ブラウザのバージョン等どのような環境で確認したのか具体的に書いた方がいいです。

自分は以下のhtmlを
ブラウザ:IE8
OS:WindowsXP Pro SP3
で確認しました。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>データバインド</title>
</head>
<body>

<script type="text/javascript">
document.open();
document.write("<object id='ID1' classid='clsid:333C7BC4-460F-11D0-BC04-0080C7055A83'>");
document.write("<param name='DataURL' value='test.csv'>");
document.write("<param name='UseHeader' value='true'>");
document.write("</object>");
document.write("<table datasrc='#ID1' border=1>");
document.write("<thead><tr>");
document.write("<th>日時</th>");
document.write("<th>場所</th>");
document.write("<th>参加人数</th>");
document.write("</tr></thead>");
document.write("<tbody>");
document.write("<tr>");
document.write("<td><span datafld='日時'></span></td>");
document.write("<td><span datafld='場所'></span></td>");
document.write("<td><span datafld='人数'></span></td>");
document.write("</tr>");
document.write("</tbody>");
document.write("</table>");
document.close();
</script>
</body>
</html>

IE8以外のブラウザ(chrome、Firefox、opera、safari)では動かないなーと思っていたら
>それより、何故いまさらIEだけのデータバインド使うのか
だったのですね^^
    • good
    • 0
この回答へのお礼

お礼が遅れて申し訳ございません。
ご回答ありがとうございます。
環境情報が不足していました。すみません。

ご回答のソースは大変参考になりました。
先ほどの方のお礼にも書きましたが、どうやら問題は別にあるようです。
又、お二方ともとてもわかりやすかったので、先の方を
ベストアンサーに選ばせてもらいました。
・・・どうやら質問の方法から勉強しないとダメそうですね。

ありがとうございました。

お礼日時:2010/09/15 22:46

もし、記載のとおりのソースであるならば


>document.write('<td><span datafld='日時'></span></td>');
>document.write('<td><span datafld='B'></span></td>');
を、それぞれ
document.write("<td><span datafld='日時'></span></td>");
document.write("<td><span datafld='B'></span></td>");
とすれば動きましたが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。誤って試行錯誤中の物を張り付けてしてしまいました。誠に申し訳ございません。 実際のソースはご指摘通りに修正されていますが、動きません。

お礼日時:2010/09/15 15:51

文字コードってご存知ですか?


WindowsパソコンでCSVのようなtextファイル作ると、「Sift-Jis」
という文字コードになります。

それが、あなたのWebページの文字コード指定と異なっているのですよ。
<head>の先頭にでも
<meta http-equiv="Content-Type" content="text/html; charset=Shift-Jis">
とでも入れて試して見て下さい。

それで、データ部に"日時"と表示されて、他の部分が文字化けしてるなら、
あなたのページが「Shift-Jis」で保存されてないというわけなので、
「Shift-Jis」で保存(アップロード)しなおしましょう。
あるいは、CSVファイルの方の文字コードを変えて保存するかです。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。ご回答通りに修正してみましたが、だめでした。 対象のcsvがshift-jisということも確認しました。携帯からの返信で読みづらくてすみません。 掲示板への書き込みがセキュリティにひっかかってしまいました。

お礼日時:2010/09/15 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!