• ベストアンサー

データベースから取り出したテキストの改行

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)が出てしまいます。 この改行を変換してやる必要がありそうなのですが、その方法がわかりません。 以上、長い質問ですが、よろしくお願いいたします。

  • PHP
  • 回答数5
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • mflow
  • ベストアンサー率63% (42/66)
回答No.5

ちょび、直し。最初にCRを削除してからLFを\nに置換する。 <?php $str = "テスト\n改行あり"; $str = str_replace( "\r" , '' , $str); echo str_replace("\n",'\n',$str); ?>

xyz_1990
質問者

お礼

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

その他の回答 (4)

回答No.4

DBに格納してある改行コードの問題かもしれません。 改行コードがLFならば\nなのですが、CR+LFならば対応するのは\r\nになります。 ですので $str = str_replace("\n", "", $str); を $str = str_replace("\r\n", "", $str); にして試してみてください。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

JavaScriptの掲示板で http://oshiete1.goo.ne.jp/qa2488999.html ですでにphpでの対処法が示されているのに、そのことに関してどんな結果を得られたのかを書かずに同じ質問文では、同じ回答しか貰えないよ。 >データベースから変数$strを取り出し、 この部分に相当するプログラムソースが問題なんですけど。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんの補足。 どうせやるならこうでは? $str = str_replace("\n", "\\n", $str);

  • 961053
  • ベストアンサー率27% (3/11)
回答No.1

$str の中の改行コードを除去してみてはいかがでしょうか? 例えば、 $str = str_replace("\n", "", $str); //たぶん改行コードって\nだったはずです。 という感じに。見当違いだったらゴメンナサイ。

xyz_1990
質問者

補足

ご回答ありがとうございます。 $str = str_replace("\n", "", $str); や $str = str_replace("\n", "\\n", $str); など、いろいろ試したのですが、だめでした。 $str = "こんにちは 太郎さん"; で試すと上手くいくのですが、DBから取り出した変数ではうまくいきません。

関連するQ&A

  • innerHTML内では改行は禁止?

    基本的なことかもしれませんが、JavaScript初心者なので質問させてください。 innerHTML内で改行を入れると実行されないのでしょうか? たとえば、これ↓はうまく行くのですが、 <script type="text/javascript"> function change1() { document.getElementById('change1').innerHTML='<p>ハケには毛が多い</p><p>ハゲには毛がない</p><input type="button" value="失礼しました m(_ _)m" />' } </script> <div id="change1"> <p>カラスは黒い</p> <p>ガラスは透明</p> <input type="button" value="ここを押すと文章が変わります" onClick="change1();"> </div> こうすると↓うまく行きません。 <script type="text/javascript"> function change2() { document.getElementById('change2').innerHTML=' <p>ハケにはやはり毛が多い</p> <p>ハゲにはやはり毛がない</p> <input type="button" value="再び失礼しました m(_ _)m" />' } </script> <div id="change2"> <p>カラスは黒い</p> <p>ガラスは透明、、、じゃないものもある</p> <input type="button" value="ここを押すと文章が変わります?" onClick="change2();"> </div> 別に困っているわけではないのですが、 ソースは見やすく書きたいのでよろしくお願いします。

  • 文字をテキストフィールドに記入する。

    ボタンを押したら、その文字がテキストフィールドに記入されていく、といったスクリプトを作りたいのですが、どうもうまくいきません。 以下がとりあえず作成したスクリプトですが、ここからどのようにすれば、うまく出来るでしょうか? とりあえずしたい事は、例えば、「野菜」「肉」「魚」と順にボタンを押すと、テキストフィールドに「野菜 肉 魚」と記入されていくようにしたいのですが。 今の状態ではボタンを押す度に、その文字が変わるだけで、連続して記入されていきません。 JavaScriptは初心者ですがアドバイス宜しくお願いします。 **************************** <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- str = new Array(3); str[0] = "野菜"; str[1] = "肉"; str[2] = "魚"; function setMsg(id) { document.all.str.innerHTML = str[id]; } // --> </SCRIPT> </HEAD> <BODY> <p><textarea name="sss" rows="3" cols="40" ID="str"></textarea></p> <p><input type = "button" value="野菜" onClick="setMsg(0)" > <input type = "button" value="肉" onClick="setMsg(1)"> <input type = "button" value="魚" onClick="setMsg(2)"></p> </BODY> </HTML>

  • javascript + php でエラー

    エラーを取り除くことができず、困っています。 助けてください。 下記のようなコードで、PHPからjavascriptに文字列を渡しているのですが、 文字列に改行コードがあるとエラーになってしまいます。 (改行コードがない場合はエラーはでません) 文字コードはEUC-JP、改行はLFとしています。 エラーの原因と、対策を教えてください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function sampl(str) { alert(str); } //--> </script> </head> <body> <form method="post" action="#"> <?php $str = "テスト\n改行あり"; ?> <input type="button" value="実行" onClick="sampl('<?=$str?>')"> </form> </body> </html>

  • JavaScriptがFirefoxで動かない・・・

    よろしくお願いいたします。 IEでは正常に動作するのですが、Firefoxで実行してみると ボタンを押しても何の反応もありません。 どのように変更すればFirefoxで動作するのでしょうか? よろしくお願いいたします。 <SCRIPT LANGUAGE="JavaScript"> <!-- function warning(){ alert("テストです。"); } //--> </SCRIPT> <FORM><INPUT type="button" value="ボタンを押して。" onClick="warning()"></FORM> 上記のコードを外部に独立させて・・・ 【コード】 <script type="text/javascript" src="sample3.js"></script> <input type = "button" name = "button3" value = "sample3" onclick = "Func3();"> 【sample3.js】 function Func3() { alert("js外部ファイル記述"); } です。 FC2ブログで活用したいのですが・・・ 改行の扱いは「HTMLタグのみ」に設定しています。 ご回答、よろしくお願いいたします。

  • テキストエリア内で改行するには。

    次のスクリプトを実行すると、テキストエリア内に 01234560 と数字が表示されますが、これを 0 1 2 . というように改行も含めてテキストエリアに出力するにはどうすればよいでしょうか。 ¥nという文字を使用するのでしょうか? <html> <head> <script language="JavaScript"> <!-- var textA="" function my1() {for (i=0;i<11;i++){textA=textA+new String(i)} document.form1.text1.value=textA;} //--> </script> </head> <body> <form name="form1"> <textarea name="text1" size="10"></textarea> <input type="button" value="CLICK!" onClick="my1();"> </form> </body> </html>

  • window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するには

    window.openで開いた子ウィンドウから親ウィンドウのjavascriptを実行するにはどうしたらよいのでしょうか。 子ウィンドウから <INPUT TYPE="button" value=\"実行\" onClick=opener.document.jikkou();> や <INPUT TYPE="button" value=\"実行\" onClick=opener.jikkou();> 等のボタンを作ってみましたが、無反応でした。 すいません。宜しくお願いします。

  • エラーになります。なぜでしょうか?

    理由あって下記のような書き方をしています。 $str .="<td><input type='button' value='入金確認' onclick='location.href="order.php?pc='".$value."" "; $str .=" /></td>"; エラーが出て困っています。 教えてください。

    • ベストアンサー
    • PHP
  • PHPの囲みかた

    以下のPHPが動かない、画面が真っ白になってしまうのですがなぜでしょうか? また<?php ?>でPHPは囲みますが、一画面で何回も囲んでも構わないでしょうか? <input name="button" type="button" onclick="location.href='/abc.php'" value="abc"> <?php  print ('<input type="button" value="aaa" onClick="location.href='/aaa.php'">'); ?> <input type="button" value="bbb" onClick="location.href='/bbb.php'">

    • 締切済み
    • PHP
  • JavaScriptのinput要素のonclick内で直接JavaS

    JavaScriptのinput要素のonclick内で直接JavaScript文を書きたい <input type="button" onclick="func()" value="ボタン"> のようにonclick内で関数を呼び出すことはできますが、 以下のようにスクリプトを直接書き込むのは可能でしょうか? (これは私が適当に考えただけなので多分動作はしませんが) <input type="button" onclick="javascript:( var a = 123; alert( a ); )" value="ボタン"> というのもちょっと試したいだけのときなど、 なるべく外部呼出しにしたくないことも多々あるもので・・

  • JavaScriptで電卓を作って一応完成はした

    のですが、分からないコードがあります。以下のコードです。 ~HTML~ <form name="dentaku"> <input type="text" name="line" value="0"> <input type="button" value="C" onclick="cl()"> <input type="button" value=" 7 " onclick="val(7)"> <input type="button" value=" 8 " onclick="val(8)"> <input type="button" value=" 9 " onclick="val(9)"> <input type="button" value="÷" onclick="keisan('/')"> <input type="button" value=" 4 " onclick="val(4)"> <input type="button" value=" 5 " onclick="val(5)"> <input type="button" value=" 6 " onclick="val(6)"> <input type="button" value="×" onclick="keisan('*')"> <input type="button" value=" 1 " onclick="val(1)"> <input type="button" value=" 2 " onclick="val(2)"> <input type="button" value=" 3 " onclick="val(3)"> <input type="button" value="-" onclick="keisan('-')"> <input type="button" value=" 0 " onclick="val(0)"> <input type="button" value=" ・ " onclick="val('.')"> <input type="button" value=" + " onclick="keisan('+')"> <input type="button" value="=" onclick="keisan('=')"> </form> ~JavaScript~ total = 0; input = ""; ope = "+"; flg = 1; function val(data) { flg = 0; input += data; document.dentaku.line.value = input; } function keisan(data) { if (flg == 0) { flg = 1; cf = total + ope + input; total = eval(cf); input = ""; document.dentaku.line.value = total; } if (data == "=") { total = 0; ope = "+"; } else { ope = data; } } function cl() { total = 0; ope = "+"; input = ""; document.dentaku.line.value = total; } 関係のないコードは省略してあります。また、CSSも省略しますが、テーブル要素を使わず以下の画像のようにインライン要素(input要素)の性質を利用して回り込みをさせています。 長くなりましたが、そこで質問なのですが、 (1)変数ope(operandの略)なのですが、初期値は+なのに演算子ボタン(上記のHTMLコード)をクリックすると、なぜ値がその演算子に変わるのか理由を教えて下さい。 何となく理由は分かりますが、はっきりと理解したいです。 (2)上記のHTMLコードをもっと簡単に書けませんか? 特にonclickをボタンの数だけ書くのは手間です。

専門家に質問してみよう