Entries


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

-件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

-件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/789-78e0013e

DBからjavascriptに値を渡したときにエラーがでる


PHPでDBにアクセスして結果を表示し,表示部分はJavascriptで切り替えみたいなページを作っていました.

途中までDBの中身はSQLを書いてinsertしていたのですが,テーブルの拡張など色々増えてきて面倒なのでDB編集ツールみたいなのを作りました.実際に作ってみたらユーザビリティが酷過ぎて笑えました.まぁ別に自分しか使わないし使いやすさとかデザインとか関係ないですけどねw.

暫くして表示部にスクリプトエラーが出ていることに気付きました.以前は出ていなかったはずなのにおかしいなぁなんて感じました.IEは途中でスクリプトエラーで止まるようになり,Firefoxではunterminated string literalなんてfirebugに表示されています.何これ??

まずスクリプトエラーの再現性が微妙だったので迷う羽目になりました.生じないときもあるからです.そもそも前は生じなかったのにいきなりエラーがでるようになった理由がよくわかりません.

1つずつ見ていくと特定の値を渡した際だけにエラーが生じていることがわかりました.渡している値の文字列を直に記述した場合は正常に動くことが確認できたので,DBからJavascriptに値を渡すときに何かが起きていると考えました.結論を言うとどうやらDB編集用メニューを作ったのが原因らしいです.DBへの入力フォームに<textarea>タグを使用しており,そこからDBに入力したデータには改行コードが含まれている場合があるようで,そのカラムから受け取った値に改行コードがそのまま入ってしまうようです.つまりDBから書き出される値に改行コードが入った状態でjavascriptに渡されるのでスクリプトエラーが起きるみたいです.
$hoge = "string from db";//DBから値を受け取る
$hoge = str_replace( "\r" , '' ,$hoge);
$hoge = str_replace("\n",'\n',$hoge );
echo $hoge;
とういことでjavascriptに渡す前に改行コードを消してあげると解決しました.

0件のコメント

コメントの投稿

新規

※設定NGワードは『http』です

投稿した内容は管理者にだけ閲覧出来ます

0件のトラックバック

トラックバックURL
http://pugiemonn.blog6.fc2.com/tb.php/789-78e0013e

Appendix

プロフィール

川崎修

  • Author:川崎修
  • インターネット大好き!
    調布周辺で自宅警備してます



    メール:pugiemonn@gmail.com
    skype:pugiemonn
    twilog:Twilog
    mixi:mixi
    facebook:facebook
My Profile by iddy
FC2ブログ

カレンダー

06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

最近の記事

Twitter

コミュニティ

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

Adsense

月別アーカイブ

はてぶ数

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。