PDA

View Full Version : سوال: مشکل در آدرس دهی در وبلاگ به وسیله ajax



rash44
شنبه 15 تیر 1392, 10:29 صبح
سلام
1 سیستم وبلاگ دهی دارم . با استفاده از ajax محتوای لینک ها رو فراخوانی می کنم .
زمانی که بر روی 1 لینک ( شرح وبلاگ ) کلیک می کنم ، بجای محتویات فایل مربوط به شرح وبلاگ ، صفحه اصلی مجددا فراخوانی میشه و ترتیب نمایش صفحات به هم میریزه .
به این صورت آدرس دهی کردم :

<a title="شرح وبلاگ" href="#" onclick="ajax_loadContent('viewitem','about.php');">شرح وبلاگ</a>

بصورت : http://web.ir/blog/about.php هم آدرس دهی کردم اما تغییر نکرد .
محل پوشه و فایل های مربوط به وبلاگ ها در پوشه blog می باشد و با وارد کردن ali.web.ir محتویات web.ir/blog/blog.php?web=ali نمایش داده میشه

rash44
شنبه 15 تیر 1392, 10:36 صبح
فایل های ajax هم که در صفحه اصلی ضمیمه کردم

MMSHFE
شنبه 15 تیر 1392, 10:38 صبح
توی صفحه about.php کدهای نمایش منوها و سایر بخشهای صفحه رو نگذارین و فقط کدی که محتوای اصلی رو از دیتابیس میخونه و ارسال میکنه، باقی بمونه.

rash44
شنبه 15 تیر 1392, 10:41 صبح
توی صفحه فوق ، فقط کدهای مربوط به نمایش داده ها وجود داره



<?php
@ session_start();
//
require_once('inc/db.php');
//
$sql2="SELECT `about`,`picbloger` FROM `bloglst` WHERE `user`='$_SESSION[user]' LIMIT 1";
$result2 = mysql_query($sql2);
$line2=mysql_fetch_assoc($result2);
//
?>
<head>
<meta http-equiv="Content-Language" content="fa">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title><?php echo 'test'; ?></title>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0">
<table border="0" width="100%">
<tr>
<td dir="rtl">&nbsp;</td>
</tr>
<tr>
<td dir="rtl" align="right">
<font face="Tahoma" size="2" color="#333333"><?php echo $line2['about']; ?></font></td>
</tr>
<?php if ($line2['picbloger'] != '') { ?>
<tr>
<td dir="rtl">
&nbsp;</td>
</tr>
<tr>
<td dir="rtl">
<p align="center">
<img border="0" src="http://.web.ir/blog/blogimage/<?php echo $line2['picbloger']; ?>" width="99" height="153"></td>
</tr>
<?php } ?>
</table>

rash44
شنبه 15 تیر 1392, 10:46 صبح
توی صفحه about.php کدهای نمایش منوها و سایر بخشهای صفحه رو نگذارین و فقط کدی که محتوای اصلی رو از دیتابیس میخونه و ارسال میکنه، باقی بمونه.

زمانی که 1 صفحه balnk هم بجای لینک ها جاگذاری می کنم همین مشکل وجود داره

rash44
شنبه 15 تیر 1392, 11:17 صبح
زمانی هم که به صورت مستقیم واردذ وبلاگ میشم کلیه لینک ها صحبح می باشد

web.ir/blog/blog.php?id=user

rash44
شنبه 15 تیر 1392, 14:42 عصر
لطفا راهنمائی کنید

afshin9032
شنبه 15 تیر 1392, 15:13 عصر
زمانی که از Ajax استفاده میکنی ، حتما از تابع exit باید استفاده کنی تا ادامه کد اجرا نشه و تا خطی از کد که مورد نیاز هست اجرا بشه .

rash44
شنبه 15 تیر 1392, 15:41 عصر
زمانی که از Ajax استفاده میکنی ، حتما از تابع exit باید استفاده کنی تا ادامه کد اجرا نشه و تا خطی از کد که مورد نیاز هست اجرا بشه .


ممنون دوست عزیز

یعنی اینکه باید توی این کد از تابع exit استفاده بشه ؟


1<?php@ session_start();//require_once('inc/db.php');//$sql2="SELECT `about`,`picbloger` FROM `bloglst` WHERE `user`='$_SESSION[user]' LIMIT 1";$result2 = mysql_query($sql2);$line2=mysql_fetch_assoc($resul t2);//?><head><meta http-equiv="Content-Language" content="fa"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title><?php echo 'test'; ?></title></head><body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0"><table border="0" width="100%"><tr><td dir="rtl">&nbsp;</td></tr><tr><td dir="rtl" align="right"><font face="Tahoma" size="2" color="#333333"><?php echo $line2['about']; ?></font></td></tr><?php if ($line2['picbloger'] != '') { ?><tr><td dir="rtl">&nbsp;</td></tr><tr><td dir="rtl"><p align="center"><img border="0" src="http://.web.ir/blog/blogimage/<?php echo $line2['picbloger']; ?>" width="99" height="153"></td></tr><?php } ?></table>

توی کدوم قسمت باید از exit استفاده کنم ؟

rash44
شنبه 15 تیر 1392, 15:43 عصر
زمانی که از Ajax استفاده میکنی ، حتما از تابع exit باید استفاده کنی تا ادامه کد اجرا نشه و تا خطی از کد که مورد نیاز هست اجرا بشه .

البته همه صفحات و لینک ها زمانی که بصورت مستقیم آدرس دهی می کنم به درستی مشاهده میشه و کار می کنند

مثلا بصورت زیر :
web.ir/blog/blog.php?id=user

rash44
شنبه 15 تیر 1392, 15:50 عصر
زمانی که از Ajax استفاده میکنی ، حتما از تابع exit باید استفاده کنی تا ادامه کد اجرا نشه و تا خطی از کد که مورد نیاز هست اجرا بشه .

از exit()هم استفاده کردم امام مشکل حل نشد

به نظر خودم مشکل توی آدرس دهی صفحات می باشد

afshin9032
شنبه 15 تیر 1392, 16:07 عصر
فرض کن کد زیر در صفحه مربوط به فرا خوانی Ajax اجرا میشه :



<?php
if(isset($_GET['ajax']) && $_GET['ajax']='true')
{
$string='';
$data=array(
'A'=>'Test 1',
'B'=>'Test 2',
'C'=>'Test 3',
);
foreach($data as $key=>$value)
{
$string.='<div style="margin:5px;">'.$key.' = '.$value.'</div>';
}
echo $string;
exit;
}
?>


تو خط اول برای هر درخواست Ajax ما یک متغیر get با نام ajax ارسال می کنیم که درخواست ajax را از سایر درخواست ها تشخیص دهیم .
کدهای بعدی هم که نمونه است و بعد از echo از تابع exit استفاده می کنیم تا اجرای ادامه برنامه متوقف شود ، چون نیازی به اجرای کدهای دیگر نیست و ممکن است به خطای منطقی برخورد کنیم .
من هم به این خطا خوردم و اگر مال شما هم از این نوع خطا باشه ، با تابع exit و استفاده از متغیر ajax قابل حل می باشد .

rash44
شنبه 15 تیر 1392, 16:22 عصر
نظرتون در این مورد چیه ؟
البته همه صفحات و لینک ها زمانی که بصورت مستقیم آدرس دهی می کنم به درستی مشاهده میشه و کار می کنند

مثلا بصورت زیر :
web.ir/blog/blog.php?id=user

rash44
پنج شنبه 20 تیر 1392, 11:14 صبح
لطفا راهنمائی کنید

ممنون