ورود

View Full Version : ذخیره کردن نظرات با JQuery



SlowCode
چهارشنبه 18 بهمن 1391, 13:54 عصر
سلام
من php رو تازه شروع کردم، این سایت (http://asalkadeh.xzn.ir/pages.php?id=2) رو واسه آزمایش نوشتم
میخوام تو قسمت نظرات با Ajax ثبتشون کنم، این کد رو نوشتم ولی کار نمیکنه(البته رو لوکال نوشتم رو هاست نیست):

<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#send").click(function(){
$.post("save.php",{c_name:"mohsen",c_email:"m@gmail.com",c_site:"www.site.ir",c_comment:"Hello",c_pid:3},function(data,status){
alert("Data: " + data + "\nStatus: " + status);)
});
});
</script>

فکر کنم کد یه اشکالی داره چون اصلا پیغام نمیده!
به نظرتون مشکل از چیه؟

2undercover
چهارشنبه 18 بهمن 1391, 15:38 عصر
تنها مشکلی که من دیدم این بود که یک آکولاد کم گذاشتین بعد از اون کد alert که آکولاد مربوط به function(data,status) رو نبستید!

SlowCode
چهارشنبه 18 بهمن 1391, 20:49 عصر
آره درست بود ممنون.
حالا میخوام مقدار برگشتی رو به یه عنصر اضافه کنم، با این کد اضافه میکنه ولی همه متن های صفحه رو پاک میکنه!!!

$(document).ready(function() {
$("#send").click(function(){
$.post("save.php",{c_name:$("#c_name").val(),c_email:$("#c_email").val(),c_site:$("#c_site").val(),c_comment:$("#c_comment").val(),c_pid:$("#c_pid").val()},function(data,status){
$(".addcomment").before(data)});
});
});

اینجا (http://asalkadeh.xzn.ir/pages.php?id=3)یه نظر بدین منظورم رو متوجه میشین.

2undercover
پنج شنبه 19 بهمن 1391, 09:14 صبح
خوب به جای before از تابع text استفاده کنید!

فک می کنم چون before تمام متون قبل رو هم در بر می گیره!

SlowCode
پنج شنبه 19 بهمن 1391, 10:50 صبح
نه این متد کد دریافتی رو به آخر این عنصر اضافه کنه(کد مربوط به نظر جدید)
next و append رو هم امتحان کردم ولی بازم متنها پاک میشن.
حالا به نظرتون چچرا نظر ثبت نمیشه تو دیتابس؟ وقتی با تگ فرم ارسال میشه ذخیره میشه ولی الان نه!!!

2undercover
پنج شنبه 19 بهمن 1391, 19:03 عصر
پس اگه میشه کد های کاملتونو بزارین تا بتونیم رو همش فکر کنیم!

SlowCode
پنج شنبه 19 بهمن 1391, 23:51 عصر
پس اگه میشه کد های کاملتونو بزارین تا بتونیم رو همش فکر کنیم!
تو پست سوم آدرس سایت رو گذاشتم، اینم سورس صفحه ذخیره کردن


$c_name=$_POST['c_name'];
$c_email=$_POST['c_email'];
$c_comment=$_POST['c_comment'];
$c_pid=htmlentities($_POST['c_pid']);
$c_site=$_post['c_site'];
header( "refresh:0;url=pages.php?id=".$c_pid );

if(isset($c_name))
{DoCommand("insert into tbl_comments (name,email,comment,date,visited,pid) values ('$c_name','$c_email','$c_comment','$date',0,'$c_p id')");
echo '<div class="comment"><h2><a href="',$c_site,'">',$c_name," در تاریخ :",$date," گفته: </h2><hr><br>",$c_comment,"<br></div>";
}

این کد با تگ فرم درست کار میکنه فکر نکنم مشکلی داشته باشه.

2undercover
جمعه 20 بهمن 1391, 18:45 عصر
خوب شما توی if گفتید:
if(isset($c_name)) که منظورتون این بوده که وقتی دکمه c_name فرم فشار داده شده بود کد های دیتابیس اجرا بشه !
ولی توی Ajax که ما با دکمه ارسال نمی کنیم صفحه رو ! پس باید اون if رو بردارید!

SlowCode
جمعه 20 بهمن 1391, 20:27 عصر
خوب شما توی if گفتید:
if(isset($c_name)) که منظورتون این بوده که وقتی دکمه c_name فرم فشار داده شده بود کد های دیتابیس اجرا بشه !
ولی توی Ajax که ما با دکمه ارسال نمی کنیم صفحه رو ! پس باید اون if رو بردارید!
اون که دکمه نیست! گفتم اگه مقدار نام ارسال شده باشه این کار رو بکن. مشکل از اون نیست چون callback ای جکس مقدار برگشتی رو نشون میده(خط بعد از دستور ذخیره کردن)
حالا این مشکل ذخیره رو یه کارش میکنم لطفا درمورد پاک شدن مطالب کمکی کنین...خیلی عجیبه برام.:متفکر:

2undercover
شنبه 21 بهمن 1391, 16:13 عصر
بالاخره متوجه شدم !

وقتی روی کلید ارسال نظر کلیک می کنیم و اطلاعات Ajax لود میشه یک تگ br بلافاصله به عنوان اولین تگ body ایجاد میشه (علتشو خودمم نفهمیدم!) که باعث میشه دو تا استایل CSS به تگ body اضافه بشه که شامل این دوتا هستش(علت این رو هم نفهمیدم!):body
{
font-size: 0px;
color: white;
}

که همونطور که معلومه اندازه فونت رو 0 می کنه و رنگ نوشته هارو سفید!

پس شما کافیه این کد رو به فایل CSS اضافه کنی تا درست بشه:body
{
color: رنگ نوشته مورد نظر !important;
font-size: 12px !important;
}

که اون !important باعث میشه که این استایل ها از بقیه مهم تر باشه!

SlowCode
یک شنبه 22 بهمن 1391, 00:33 صبح
ممنون خودمم الان فهمیدم:گیج:
علتش اینه که من تو فرم save.php اون استایل رو نوشته بودم و تو مقدار برگشتی اون رو هم چاپ میکرد و همه چی بهم میخورد.
مشکل ذخیره هم این بود که شماره صفحه یعنی pid رو به اشتباه c_pid نوشته بودم و الان درست شد.:لبخند:
خدا هیچ کس رو ناشی نکنه.:گیج: