phpからget送信で持ってきたデータの改行

このQ&Aのポイント
  • phpから取得したデータをjavascriptに渡して表示する方法について教えてください。
  • javascriptで改行ができない原因を教えてください。
  • ブラウザ上で表示されるデータの改行を正しく表示する方法を教えてください。
回答を見る
  • ベストアンサー

phpからget送信で持ってきたデータの改行

こんにちは。 phpから取得したデーターをjavascriptに渡して表示したいと考えています。 しかしながらjavascriptで改行ができません。何が原因でしょうか? <send.phpファイル> <?php $date_db="2012/12/03"; .$title_db="テスト"; $comment_db="送信可能"; echo "日時:".$date_db."\nタイトル:".$title_db."\nコメント:".$comment_db; ?> <htmlファイル(一部)> $.ajax({ type: "GET", url: "send.php", data: data, dataType: "text", success: function(data, dataType) { /** Ajax通信が成功した場合に呼び出される */ //初回アクセス時 if(result == null) { result = data; } //PHPより取得した値が違えばメッセージを<div id="text"></div>に出す if(result != data){ alert("情報が更新されました\n情報を確認してください"); $('#text').text(data); result = data; } }, <div id="text"></div> ブラウザ上で表示されると「 日時:2012/12/03タイトル:テストコメント:送信可能」になってしまいます。 お願いします。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 ブラウザ上で改行する場合はタグにする必要があります。 ==== send.phpの抜粋(\nを<br>に) echo "日時:".$date_db."<br />タイトル:".$title_db."<br />コメント:".$comment_db; そして、表示側もtextではなくinnerHTMLに設定する必要がありますので $('#text').html ( data ); にする必要があります。 === 動作確認サンプル http://hppg.moe.hm/okwave/qa/q7292983/

elkheart
質問者

お礼

ありがとうございます。 無事できました。 今後もよろしくお願いします。

その他の回答 (1)

  • myr0326
  • ベストアンサー率52% (24/46)
回答No.1

ブラウザ上で改行させるには<BR>タグを使いましょう。 \nだとソース上で改行されるだけです。

関連するQ&A

  • フォームデータの受取り方

    お世話になっております。フォームデータの受取り方が判らず質問させて下さい。 少々長いのですが、以下はPHPで作ったファイルです。 (IDは重なってはならないと考え、変数で番号を与えて回避しています) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="EUC-JP" /> <title></title> <script type="text/javascript" src="/jquery/js/jquery.min.js"></script> </head> <body> <script> $(document).ready(function(){ $('#send1').click(function(){ var data = {comment : $('#comment1').val()}; $.ajax({ type: "POST", url: "send.php", data: data, success: function(data, dataType){ }, error: function(XMLHttpRequest, textStatus, errorThrown){ alert('Error : ' + errorThrown); } }); return false; }); }); </script> <form method="post"> <INPUT type="hidden" name="comment_no" id="comment_no" value="1"><p><textarea name="comment1" id="comment1" style="width:400px; height:20px; padding:6px 5px; font-size:13px; overflow:hidden; vertical-align:text-bottom;" onkeyup="resize(this)"></textarea></p> <p><input id="send1" value="送信1" type="submit" /></p> </form> <hr> <script> $(document).ready(function(){ $('#send2').click(function(){ var data = {comment : $('#comment2').val()}; $.ajax({ type: "POST", url: "send.php", data: data, success: function(data, dataType){ }, error: function(XMLHttpRequest, textStatus, errorThrown){ alert('Error : ' + errorThrown); } }); return false; }); }); </script> <form method="post"> <INPUT type="hidden" name="comment_no" id="comment_no2" value="2"><p><textarea name="comment2" id="comment2" style="width:400px; height:20px; padding:6px 5px; font-size:13px; overflow:hidden; vertical-align:text-bottom;" onkeyup="resize(this)"></textarea></p> <p><input id="send2" value="送信2" type="submit" /></p> </form> </body> </html> ここで質問させて下さい。 上記フォームデータの受取り先である、send.phpは $comment = $_POST['comment']; としてテキストフォームの値を拾っているのですが、 hidden データの comment_no は、どのように値を拾ったらよろしいのでしょうか? 前回の質問同様、AJAXを触り初めて間もなく、googleで調べようにも適切なキーワードが判らずにいる次第です。 お忙しいなか恐縮ですが、アドバイスのほど頂戴出来たら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • AJAX
  • jQuery $.ajax JSON形式のPOST

    jQuery $.ajax JSON形式のPOSTでフォーム内容を送信し、送信先のPHPでメール送信させるプログラムをかいているのですが、どうしても$.ajaxのerrorが呼び出される状況です。errorが呼び出されますが、PHPの方のメール送信はできております。 PHP側の出力がうまくいっていないのではないかと思いますが、原因がわかりません。どなたかご教授いただけないでしょうか?宜しくお願いします。 ---js--- $("#send").click(function(){ var NAME = $('#name').val(); var EMAIL = $('#email').val(); var TITLE = $('#titlel').val(); var COMMENT = $('#comment').val(); $.ajax({ url : "sendmail.php", dataType : "json", data : {name:NAME, email:EMAIL, title:TITLE, comment:COMMENT}, type : "post", success : function(data){ if(data != ''){ alert(data.result); } }, error : function(){ alert("通信に失敗しました。"); } }); }); ---sendmail.php--- if($_SERVER["REQUEST_METHOD"] != "POST"){ header("HTTP/1.0 404 Not Found"); return; }else{ //メール送信処理 (省略) $message = "送信完了メッセージ"; $result = array('result' => $message); echo json_encode($result); }

  • PHPで、HTMLメールの際のエラー

    HTMLメールを送る下記スクリプトにおきまして、管理人宛てのメール本文を 見ると、添付画像のように、生のHTML文のついたメールが届いてしまいます。 普通のHTMLメールにするには、どこがどう間違っているのか、ご指導いただき たいです。 ちなみにサーバーはさくらサーバーです。 --------------------------------------------------------------------------------------------------------------- ////////////////////////////////////////// // 新着口コミを管理人にメールで知らせる // ////////////////////////////////////////// $to = "~"; // 管理人宛て $mail_title = " ユーザーが新着口コミを投稿しました。"; $header = "From: ~ Content-Type:text/html; charset=ISO-2022-JP Content-Transfer-Encoding:8bit "; //$uniqid = uniqid(); $to = mb_convert_encoding($to, "UTF-8", "auto"); // $toは、自動的にエンコードされない。 $mail_title = mb_convert_encoding($mail_title, "UTF-8", "auto");    $html_header = '<!DOCTYPE html"><html><meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP"></head><body bgcolor="#FFFFCC">';    $html_footer = '</body></html>'; $comment_header = $username." 様\n\n口コミ店舗名:".$shopname."\n\n"; $comment = $html_header."\n\n".$comment_header.$comment."\n\n"; // $comment = str_replace("<br>", "\n", $comment); // $comment = mb_convert_encoding($comment, "UTF-8", "auto"); $comment_anchor = "<a href=\"http://~.com/tokyo/admin/kuchikomi_edit.php?title=".$title."&comment=".$comment_copy."&username=".$username."&shopname=".$shopname."\">口コミ編集</a>"; $comment_anchor = mb_convert_variables($comment_anchor, "UTF-8", $title, $comment_copy, $username, $shopname); $comment = $comment."\n\n".$comment_anchor.$html_footer; $comment = mb_convert_encoding($comment, "UTF-8", "auto"); $header = mb_convert_encoding($header, "UTF-8", "auto"); mb_send_mail($to, $mail_title, $comment, $header); // メール送信

    • ベストアンサー
    • PHP
  • ajaxでのデータの送信の質問です

    ajaxでjavascriptからphpに2つの変数を送りたいのです。 xmlReq.open("GET","main.php?isbn=" + encodeURI(data1),true); xmlReq.send(null); 現在このようにデータを送っているのですがdata2の値も同時にmain.phpに送りたいのです。 当方初心者なので実例で示していただけると嬉しいです。 回答よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • ajax後、php,mysqlも一部再読み込み?

    通常は一部でも変更が加わるとページの全てを再読み込みしますが、ajaxを利用すると、変更を加えた部分だけが再読み込みされるところまでは理解しています。 分からないところは、各プログラムへの動作がajaxを使った後の場合と通常の場合ではどのように違うのかです。 下記のような考え方で正しいですか?説明が下手で読みにくく申し訳ないですが、アドバイスをいただけたら嬉しいです。お願いします。 ■htmlは、実行を起こした部分を含めその子要素全てが再読み込みの対象に。  例えば、↓の<div#ajax>~</div>この間にある子要素の全てが再読み込みされる。それ以外のhtmlやcssは再読み込みされない。 ■cssは、htmlと同じで、その部分で使われているcssが対象。 ■javascriptは、ajaxの場合と通常の場合で違いはなく、常に全てが再読み込みされる(外部ファイル、記述の位置に関係なく)。 ■jquery、php、mysqlも、javascriptと同じで何一つ変わりなく通常通りに動く。 <?php ・includeで外部ファイルを取得 ・様々な処理 ・mysqlに接続して様々な処理 ?> <html> <head> <script type="text/javascript" src="外部ファイルでajaxを記述"></script> <title></title> </head> <body> <?php ・様々な処理 ?> <div id="main">  <div id="a">    <dl>~</dl>  </div>  <div id="ajax" onclick="ajaxの処理へ">    <table>~</table>    <ul>~</ul>    その他様々な処理  </div>  <p>~</p>  <img src=""> </div> <script type="text/javascript"> </script> </body> </html>

    • ベストアンサー
    • AJAX
  • PHPでWarning(Cannot modify header information - headers already sent..

    初めまして!PHP初心者です。 PHPとMySQLを使ってプログラムを作成しています。 昨日から、 PHP Warning: Cannot modify header information - headers already sent by (output started at /srv/htdocs/Common/add_comment.php3:251) in /srv/htdocs/Common/add_comment.php3 on line 260, referer: http://Pewit3/add_comment.php3?STRNUMBER=11747 というメッセージが、"時々"出ます。 理解出来ないのが、出る時と出ない時があるという点で、指摘されてるソースの部分は以下の通りです。 249: $result = mysql_db_query(DATABASE,"SELECT STRNO, TEXT FROM SOLUTION WHERE STRNO=$STRNUMBER;"); 249: if ($result) { 248: print "<PRE>\n"; 249: while ($row = mysql_fetch_array($result)) 250: { 251: printf("%s\n",$row["TEXT"]); 252: } 253: print "</PRE>\n"; 254: mysql_free_result( $result ); 255: } 256:} 257: 258:if ($COMMENT_ADDED && empty($SUCCESS)) { 259: $url_append="?STRNUMBER=$STRNUMBER&SUCCESS=1"; 260: header("Location: ".$_SERVER['PHP_SELF'].$url_append); 261:} <?php と ?>の前後にスペース、またはタブはありません。 何かヒントを頂けたら幸いです。

    • 締切済み
    • PHP
  • Ajax・jQueryでGET時にIEで文字化け

    Ajax・jQueryで日本語をGETするとき、IEで文字化けします。 (Firefox,chromeでは文字化けは起こりません。IE6/7/8で確認すると文字化けします) どのようにしたら文字化けが起こらなくなるか教えていただければと思います。 環境 PHP:5.1.6 サーバー・HTMLの文字コードはUTF-8 下記のようなリンクを作り、「jquery.url.js」でパラメータを取得しています。 <a href="./test.php?keyword=テスト&cate=1"> (実際には下記のソースに示しますが、テストの文字はurlencordしています。) 【javascript部分】 <script type="text/javascript" src="jquery.url.js"></script> <script type="text/javascript"> $().ready ( function() { $('#sample-get').find('a').click ( function() { var url = $.url ( $(this).attr('href') ); $.ajax ({ type: 'GET', url: 'send.php', cache: false, data: url.attr ( 'query' ), success: function ( data, dataType ) { $('#test').html ( data ); }, error: function ( XMLHttpRequest, textStatus, errorThrown ) { this; alert('Error : ' + errorThrown); } }); return false; }); 【HTML(PHP)部分】 $keyword='テスト'; $keyword=urlencord($keyword);//urlエンコード echo<<<EOF <div id="sample-get"> <a href="./test.php?keyword=$keyword&cate=1"><img src="images/sample1.png" alt="sample1" height="200" width="200"></a> </div> EOF; 【PHP部分(send.php)】 <?php echo $_GET['keyword']; echo urldecord($_GET['keyword']); echo $_GET['cate']; ?>

    • ベストアンサー
    • AJAX
  • Ajax データが取得できない

    現在、AJAXを勉強中です。以下のhtmlを実行し、pref.jsを呼び出すコードをサイトから引用して記述しました。 しかし、「データを取得する」ボタンを押すと、【処理中です・・・】というメッセージが出るだけで、いっこうに該当データを取得できません。(本来であれば、指定されたxmlファイル内のデータが表示されるはずなのですが・・) 何が原因なのでしょうか。 解決策がわかる方がいらっしゃいましたらご教授ください。 よろしくお願いします。 ■pref.html --------------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="../lib/prototype.js"></script> <script type="text/javascript" src="pref.js"></script> <link href="pref.css" rel="stylesheet" type="text/css"> <title>pref</title> </head> <body> <div> <input type="button" id="btnData" value="データ取得" /> <input type="button" id="btnClear" value="クリア" /> </div> <div id="state"></div> <div id="result"></div> </body> </html> --------- ■pref.js ---- onload = init; var state; var result; function init() { $("btnData").onclick = prefDisp; $("btnClear").onclick = clearDisp; state = $('state'); result = $('result'); } function prefDisp() { state.innerHTML = "処理中です・・・<br />\n"; var url = "http://ws.bzen.net/pgtop/pref.xml"; var paramList = ""; new Ajax.Request(url, { method: 'get', onSuccess: getData, onFailure: showErrMsg, parameters: paramList }); function getData(data){ var response = data.responseXML.getElementsByTagName('Response'); var item = response[0].getElementsByTagName('Item'); var tmpHtml=""; for(i = 0; i < item.length; i++){ var prefCd = item[i].getElementsByTagName('PREF_CD'); var prefCdValue = prefCd[0].firstChild.nodeValue; var prefName = item[i].getElementsByTagName('PREF_NAME'); var prefNameValue = prefName[0].firstChild.nodeValue; tmpHtml += prefCdValue + " " + prefNameValue + "<br />\n"; } result.innerHTML = tmpHtml; state.innerHTML = "データを取得しました。<br />\n"; } function showErrMsg(){ clearDisp(); state.innerHTML = "データを取得できませんでした。<br />\n"; } } function clearDisp() { state.innerHTML = ""; result.innerHTML = ""; } ---

    • ベストアンサー
    • AJAX
  • ソースコードに読み込み側phpの結果を表示させたい

    http://itpro.nikkeibp.co.jp/article/COLUMN/20060525/239029/?ST=develop このページではajaxを使ってhtmlファイルにphpファイルを読み込ませるサンプルが紹介されていますが、このサンプルを実際にブラウザで表示した後にctrl+Uで開くソースコードでは↓のようになっています。 <body> <form name="fm"> ISBNコード: <input type="text" name="isbn" size="30" /> <input type="button" value="送信" onclick="send()" /> <div id="result"></div> </form> </body> 読み込み側のphpファイルの内容も↓のようにソースコードに表示させたいです。 <body> <form name="fm"> ISBNコード: <input type="text" name="isbn" size="30" />4-7981-1070-1 <input type="button" value="送信" onclick="send()" /> <div id="result">XMLデータベース入門 NeoCore/XprioriでXMLDBを極める!</div> </form> </body>

    • ベストアンサー
    • AJAX
  • PHPでDBへのデータのの挿入がうまくいきません。

    PHPでDBへのデータのの挿入がうまくいきません。 PHP初心者です。 質問を2つほどさせてください。 質問1 レンタルサーバ(ロリポップ)で簡単な値の受け渡しを試そうと思い入力フォームと、PHP側でDB接続(ここまではなんとかできました。)と、POSTで受け取ったデータをinsert intoでDBに挿入したいのですが、データが空っぽの状態でしか挿入できません。 phpmyadminで確認していますが、idはA_Iをチェックしているので1,2,3,4....と挿入されていきますが、その他はデータが空の状態で増えていきます。 NOT NULの設定をしていなく、フィールドが空白なので、NULLの状態で挿入されていると思います。 原因は名でしょうか? test.html <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <div id="content"> <form action="test.php" method="post"> <input type="text" name="member_id" /> <input type="text" name="member_name" /> <input type="text" name="member_text1" /> <input type="text" name="member_text2" /> <input type="submit" value="送信" /> </form> </div> </body> </html> test.php <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> </head> <body> <?php mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8") $con = @mysql_connect('ホスト','ユーザ','パス') or die("接続不可"); mysql_query("set names utf8",$con); $db = "LAA0161195-kuro"; $sdb = mysql_select_db($db,$con) or die("接続不可"); print "接続成功<br />"; $sql = "insert into test values('$_post_vars[id]','$_POST[name]','$_POST[text1]','$_POST[text2]')"; $result = mysql_query($sql,$con) or die("SQL失敗"); mysql_close($con); ?> </body> </html> 質問2 また、文字化けの対策は一通りしたつもりですが、接続時のprint(接続成功)が????と文字化けします。 ググって文字化け対策は一通りできているつもりです。 こちらの原因も分かりません。 冬休みの学校の課題なので困っています。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう