1

私はいくつかのphpとjavascriptを持っていますが、すべてうまくいき、エラーメッセージは表示されません。データベースにエラーなしでデータを投稿できます。そして、すべてが良さそうに見えますが、phpで一部の機能を使用できません。

例。

テキストエリアがあり、そのデータをajaxでphpファイルに送信します。PHP ファイルでは、str_replace 関数を使用する必要があります。エラーなしで同じphpファイルのデータベースにデータを挿入できますが、str_replaceやmysqli_real_escape_stringなどのように使用しようとする関数は機能しません。

理由は何でしょうか?

ここでコード。

    $(".editBoxButton").click(function(){

        var yazi = jQuery('#editInput').val();

            $.ajax({
                type: 'POST' ,
                url : 'ajax/editEntry.php',
                    data: {
                    text: yazi,
                    },
                success : function(d){ 
                alert(d);
                location.reload();  //refresh
                }
            });

    });

ajax/editEntry.php

<?php

$yeniyazi=$_POST['text'];   
$yeniyazi = str_replace("\n", "<br>", $yeniyazi);

$s=$yeniyazi;

echo json_encode($s);

?>

アラートでは、私はじっとしています \n. 置き換えられません。

エラーは発生しません。私の問題である str_replace のみが機能しません。str_replace を期待すると、正しく動作します。

4

4 に答える 4

1

おそらく次のようにする必要があります。

$yeniyazi = nl2br($yeniyazi);

本当に手動で置き換えたい場合は、正規表現を使用してください。

$yeniyazi = preg_replace("/\r?\n/s", "<br />", $yeniyazi);

于 2013-08-07T07:14:43.170 に答える
1

Actually, you have to escape the \ with another one or use singlequotes instead.

$val = str_replace("\\n" , "<br>", $val);

Or you can do it in a single line like this :

<?php 
echo json_encode(nl2br($_POST['text']));   
于 2013-08-07T07:15:51.340 に答える