jQuery AJAX POST New Line

2 Cevap php

Yani bizim sitede şu anda belirli öğeler üzerinde yorum için bir textarea var. Site çok kullanıcı düğmesine basın ve verdikleri mesaj kaybolma görebilirsiniz AJAX kullanır (bir Facebook tarzı yorumda düşünün.)

The jQuery/AJAX:

$(function() {
$("input#comment_submit").click(function() {
var comment = $("#comment_box").val();
var dataString = 'comment=' + comment;
$.ajax({
type: "POST",
url: "app.php?id=<?php echo $id; ?>",
data: dataString,
success: function() {
$("textarea#comment_box").attr("disabled", "disabled")
$("input#comment_submit").attr("disabled", "disabled").val("Comment Submitted!");
$("#comments").prepend("<div class=\"comment new\"></div>");
$(".new").prepend("<a href=\"profile.php?username=<?php echo $_SESSION['username']; ?>\" class=\"commentname\"><?php echo $_SESSION['username']; ?></a><p class=\"commentdate\"><?php echo date("M. d, Y", time()) ?> - <?php echo date("g:i A", time()); ?></p><p class=\"commentpost\">" + comment + "</p>").hide().fadeIn(1000);
}
});
return false;
});
});

The PHP:

if (isset($_POST['comment']))
{
$username = $_SESSION['username'];
mysql_query("INSERT INTO appcomments (app_id, username, comment, date) VALUES ('" . $id . "', '" . $username . "', '" . $comment . "', NOW() )");
}

Ayrıca, yerel bir kopyası çünkü ben dezenfektan değilim ve ben yolumdan bu hatayı almaya çalışıyorum.

Şimdi, ben bu konuda ciddi bir sorun yaşıyorum. Bir kullanıcı sadece Yorumu sunar Say:

Ben bu keyif

Sayfa, onu getirir zaman boş geliyor. Ben veritabanı kontrol ve açıklama tamamen boş bırakıldı.

Yani garip bir fenomen naziksiniz. Ancak, veritabanına gittiğinde ben $ yorumuna addslashes eğer ...

if (isset($_POST['comment']))
{
$username = $_SESSION['username'];
$comment = addslashes($_POST['comment']);
mysql_query("INSERT INTO appcomments (app_id, username, comment, date) VALUES ('" . $id . "', '" . $username . "', '" . $comment . "', NOW() )");
}

Önceki yorum veritabanına kaydeder.

Şimdi bu bile daha fazla sorun getirir. Ben şöyle bir satır sonu eklemek için çalışın,

Ben bu keyif

Ben bu gibi daha fazla oyun vardır umuyoruz

Çalışır, ama ben gidip bu deneyin hangi zaman:

Ben bu keyif

Ben bu gibi daha fazla oyun vardır umuyoruz

Oh ve kaya

Bu veritabanına bir boş gönderir.

Son olarak, herhangi bir açıklama içine bir Ampersand ekleyerek bir boş gönderir.

Yani bu noktada ben ne Bunu düzeltmek benim yorumlama kodu ile yapmak için hiçbir ipucu var. Herhangi bir yardım kabul edilecek ve çok duyacağız!

2 Cevap

DB içine iterek önce mysql_real_escape_string kullanmayı deneyin

Yerine

veri: veri dizisi,

do

veriler: {Yorum: Yorum}

Eğer, bunu şimdi bunu yapıyor şekilde yapmaya devam encodeURIComponent (bkz.) istedim