プロが教える店舗&オフィスのセキュリティ対策術

MYSQL+PHP+JAVASCRIPT にてサイトを作っています。
行き詰っております。助けてください。

MYSQLからPHPにてテキストデータをとりだし、JAVASCRIPTに引き渡したいのですが、上手くいきません。

-----状況-----
データベースから変数$strを取り出し、次のコードでJAVASCRIPTの関数sampleに$strを渡しまます。
<input type="button" value="実行" onClick="sample('<?=$str?>')">

ここで、$strに改行が含まれていると、
<input type="button" value="実行" onClick="sample('こんにちは
太郎さん')">
のように2行に分割されたhtmlが書き出されてしまい、JAVASCRIPTでエラー(unterminated string literal)が出てしまいます。

この改行を変換してやる必要がありそうなのですが、その方法がわかりません。


以上、長い質問ですが、よろしくお願いいたします。

gooドクター

A 回答 (5件)

ちょび、直し。

最初にCRを削除してからLFを\nに置換する。
<?php
$str = "テスト\n改行あり";
$str = str_replace( "\r" , '' , $str);
echo str_replace("\n",'\n',$str);
?>
    • good
    • 0
この回答へのお礼

みなさま、ご回答ありがとうございます。
ANo5で解決しました。
ANo4では改行が完全になくなってしまい、ちょっと不足でした。

改行がLだけでなく、LFだったようです。

お礼日時:2006/10/23 01:24

DBに格納してある改行コードの問題かもしれません。


改行コードがLFならば\nなのですが、CR+LFならば対応するのは\r\nになります。
ですので
$str = str_replace("\n", "", $str);

$str = str_replace("\r\n", "", $str);
にして試してみてください。
    • good
    • 1

JavaScriptの掲示板で 

http://oshiete1.goo.ne.jp/qa2488999.html ですでにphpでの対処法が示されているのに、そのことに関してどんな結果を得られたのかを書かずに同じ質問文では、同じ回答しか貰えないよ。

>データベースから変数$strを取り出し、

この部分に相当するプログラムソースが問題なんですけど。
    • good
    • 1

#1さんの補足。



どうせやるならこうでは?
$str = str_replace("\n", "\\n", $str);
    • good
    • 0

$str の中の改行コードを除去してみてはいかがでしょうか?


例えば、
$str = str_replace("\n", "", $str); //たぶん改行コードって\nだったはずです。

という感じに。見当違いだったらゴメンナサイ。

この回答への補足

ご回答ありがとうございます。

$str = str_replace("\n", "", $str);

$str = str_replace("\n", "\\n", $str);
など、いろいろ試したのですが、だめでした。

$str = "こんにちは
太郎さん";

で試すと上手くいくのですが、DBから取り出した変数ではうまくいきません。

補足日時:2006/10/22 13:04
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

人気Q&Aランキング