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();
質問すること自体も初めてなので、至らない点も多々あると思いますが
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
データバインドの<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だけのデータバインド使うのか
初心者で、それしかわからないからです(;_;)
お礼が遅れてすみませんでした。
ご回答ありがとうございます。
URL参考にさせていただきましたところ、とてもわかりやすかったです。
その他、色々と試してみましたが、document.write部分の記述は間違っていないようです。
問題は別にありそうなので、本件につきましてはとりあえず一度閉じさせていただきます。
ありがとうございました。
No.4
- 回答日時:
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だけのデータバインド使うのか
だったのですね^^
お礼が遅れて申し訳ございません。
ご回答ありがとうございます。
環境情報が不足していました。すみません。
ご回答のソースは大変参考になりました。
先ほどの方のお礼にも書きましたが、どうやら問題は別にあるようです。
又、お二方ともとてもわかりやすかったので、先の方を
ベストアンサーに選ばせてもらいました。
・・・どうやら質問の方法から勉強しないとダメそうですね。
ありがとうございました。
No.2
- 回答日時:
もし、記載のとおりのソースであるならば
>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>");
とすれば動きましたが。
ご回答ありがとうございました。誤って試行錯誤中の物を張り付けてしてしまいました。誠に申し訳ございません。 実際のソースはご指摘通りに修正されていますが、動きません。
No.1
- 回答日時:
文字コードってご存知ですか?
WindowsパソコンでCSVのようなtextファイル作ると、「Sift-Jis」
という文字コードになります。
それが、あなたのWebページの文字コード指定と異なっているのですよ。
<head>の先頭にでも
<meta http-equiv="Content-Type" content="text/html; charset=Shift-Jis">
とでも入れて試して見て下さい。
それで、データ部に"日時"と表示されて、他の部分が文字化けしてるなら、
あなたのページが「Shift-Jis」で保存されてないというわけなので、
「Shift-Jis」で保存(アップロード)しなおしましょう。
あるいは、CSVファイルの方の文字コードを変えて保存するかです。
早速のご回答ありがとうございました。ご回答通りに修正してみましたが、だめでした。 対象のcsvがshift-jisということも確認しました。携帯からの返信で読みづらくてすみません。 掲示板への書き込みがセキュリティにひっかかってしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- HTML・CSS 自身のHPにYouTube動画を貼り付けるのが出来なくなり困ってます 1 2022/11/11 10:44
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS HTMLの条件によって表示方向が切り替わる実装のコードを教えて下さい。 (コードは下記リンクを参照) 1 2022/09/25 14:35
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- その他(プログラミング・Web制作) Latexに関する質問です。 3 2023/05/23 10:18
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
現在の日付から、1ヶ月前にす...
-
なぜ、ジャバスクリプトが表示...
-
ホームページに日付を自動更新...
-
JavaScriptの表示方法
-
window.openでタイトル名の指定
-
JavaScriptの件で、質問させて...
-
<a>タグのテキストを取得
-
この将棋プログラムに王様ゲッ...
-
同じIDで定義した要素の配列を...
-
google apps scriptの終了のさせ方
-
ActiveXobjectが作成できない
-
idを使わずにonclickで自身の要...
-
翌月を取得するGASが分かりません
-
関数でy=g(x)のgとは何の略です...
-
ジェネレーターの作り方
-
jspからjavascriptの変数引継ぎ
-
functionから別のfunctionを実...
-
C#テキストボックスの文字を配...
-
フォーム入力値の重複チェック
-
Linux バイナリ実行できない "...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openでタイトル名の指定
-
○歳△ヶ月と×日を計算してくれる...
-
時間帯によって背景画像を変える
-
なぜ、ジャバスクリプトが表示...
-
document.open()の意味とは
-
前のページに戻るとページトッ...
-
for文のiを使ってリンク先のア...
-
HpのFlashで,ブロック回避の方...
-
JavaScriptで乱数+乱数の計算結...
-
カウントダウン JavaScript の ...
-
来年の今日の曜日・・・?
-
「分」単位で加算(減算)したい。
-
javascriptをはじめて勉強して...
-
javascriptとphpの連携で疑問
-
ウェブ上にキーボードを作りた...
-
初歩的なことなんですけど
-
コンマとクオーテーションマー...
-
JavaScriptでFirefox使用者の閲...
-
innerHTMLにて設定した情報を再...
-
document.openの意味
おすすめ情報