2013-08-07 41 views
1

我有一些PHP和JavaScript,萬物工作,我沒有得到任何錯誤消息。我可以向數據庫發佈沒有任何錯誤的數據。和萬物看起來不錯,但我不能在PHP中使用一些功能。PHP函數不能與JavaScript一起工作

例子。

我有一個textarea,我發送它的數據與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,它工作正常。

+0

確保您使用雙引號特殊字符\ n(發生在我身上)。我知道你的答案有雙引號,以防萬一你沒有複製粘貼 – bmurauer

+0

json_encode將一個數組/對象變成一個字符串。你似乎已經在處理字符串了,所以不需要json_encode。 – Sumurai8

回答

1

你或許應該只是做:

$yeniyazi = nl2br($yeniyazi);

如果你真的想手動更換,使用正則表達式。

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

+0

[nl2br](http://php.net/manual/en/function.nl2br.php)也具有處理不同形式的新行的好處(即\ r \ n,\ n \ r,\ n ,和\ r) – ernie

1

其實,你有逃避\與另一個或使用singlequotes代替。

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

或者你可以在一個單一的線這樣做:

<?php 
echo json_encode(nl2br($_POST['text'])); 
1

我希望這個例子可以幫助您:

<?php 
// Order of replacement 
$str  = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; 
$order = array("\r\n", "\n", "\r"); 
$replace = '<br />'; 

// Processes \r\n's first so they aren't converted twice. 
$newstr = str_replace($order, $replace, $str); 

// Outputs F because A is replaced with B, then B is replaced with C, and so on... 
// Finally E is replaced with F, because of left to right replacements. 
$search = array('A', 'B', 'C', 'D', 'E'); 
$replace = array('B', 'C', 'D', 'E', 'F'); 
$subject = 'A'; 
echo str_replace($search, $replace, $subject); 

// Outputs: apearpearle pear 
// For the same reason mentioned above 
$letters = array('a', 'p'); 
$fruit = array('apple', 'pear'); 
$text = 'a p'; 
$output = str_replace($letters, $fruit, $text); 
echo $output; 
?> 
0

我使用的JavaScript也有\n問題PHP。

當前信封:

  • PHP 5.3.10

  • 的Javascript

  • XHTML 1.0

問題:

.... 
if (rowcount == 5) { 
    openShipments += '\n'; 
    rowcount = 0; 
} 
.... 

它使用\\n時,波紋管的工作原理:

.... 
if (rowcount == 5) { 
    openShipments += '\\n'; 
    rowcount = 0; 
} 
.... 
相關問題