View Full Version : سوال: نیاز به کد نویس برای ajax کردن پلاگین
abolix
سه شنبه 05 خرداد 1394, 10:25 صبح
با سلام من در حال نوشتن یک پلاگین هستم برای اخرین ارسال های اسکریپت ای پی بوردمشکلی که پیدا کردم اینه که نمیتونم تب یا کمبو هارو ایجکس کنماگه میتونید کمک کنیداگر هم کار سختیه هزینش پرداخت میشه
iker-casillas
سه شنبه 05 خرداد 1394, 10:40 صبح
سلام
توضیحتون یکم ناقصه. اگه می تونید کدتون رو قرار بدید.
abolix
سه شنبه 05 خرداد 1394, 10:54 صبح
نه متاسفانه کد رو دارم خودم کامل میکنم
من یه پلاگین برای اخرین ارسال هارو گرفتم
کمی ادیت کردم
میخوام یه شکلی بکنمش که بشه شکل پلاگین vietvbb ویبولتین
و تب های بالاش و کمبو ها ایجکس هستش
مثل برترین مطالب بیشترین تشکر ها و .......
میخوام برای ای پی بورد چیزی مانند اخرین ارسالات این بسازم
http://forumtravian.ir/
abolix
سه شنبه 05 خرداد 1394, 11:09 صبح
هزینشم اگه داره پرداخت میشه
ABZiko
سه شنبه 05 خرداد 1394, 17:03 عصر
خب این که کاری نداره، شما اون اطلاعات رو که قراره از هر جا بگیری توی یک صفحه می ریزی، بعد توی همون صفحه اصلی که قراره نمایشش بده این رو می نویسی:
<script type="text/javascript">
function AjaxRequest(){
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
try {
// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your Browser doesn't support Ajax !");
return false;
}
}
}
var url = 'GetCommentsAjax.php';
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
document.getElementById("comments").innerHTML="<img src='Images/Progress.gif' />";}
if (xmlHttp.readyState == 4) {
document.getElementById("comments").innerHTML=xmlHttp.responseText;}}
xmlHttp.open("GET", url, true);
xmlHttp.send();
}
</script>
بعد به جای اون url، آدرس مورد نظرت که همون فایل هست رو می نویسی، می تونی در هنگام گرفتن اطلاعات هم یک Loading نمایش بدی که من توی همین کد ها این کار رو کردم ...
بعد از اینکه این کد رو نوشتی، باید یک جا این تابع رو فراخوانی کنی، به همین منظور توی رویداد های همون تب مثل onclick باید اون تابع رو فراخوانی کنی که بعد از هر بار کلیک شدن روی تب، اطلاعات رو به صورت Ajax بگیره ...
abolix
چهارشنبه 06 خرداد 1394, 08:51 صبح
بعد چند سوال :
الان چطوری میتونم بهش بگم که هر بیست ثانیه بخش اخرین مطالبو رفرش کنه که اگه مطالبی اومد سریع نشون بده
یکی دیگشم اینه که الان یه تب و یه کمبو دارم وقتی روی تب کلیل کنه باید محتویات عوض شه دیگه . خب محتوایاتو کجا بریزم
این کد کامل پلاگینه منه ipboard
اگه میشه ایجکسش کنید
http://upload7.ir?p=preview&s=1&q=OKmzXoE7O3bAePGcY6RnUnQjQ9HEGEKnfXM5bg3Q&s=1
ABZiko
چهارشنبه 06 خرداد 1394, 09:58 صبح
برای سوال اول می تونید اون رویداد رو در یک دکمه که type اش hidden هست بزارید (onclick) و با استفاده از SetInterval و زمان 2 ثانیه، بیاین و روی اون دکمه کلیک کلیک کنید مثلا :
function myFunction() {
setInterval(alertFunc, 3000);
}
function alertFunc() {
$("button").click();
}
هر 2 ثانیه یک بار می آد روی دکمه کلیک می کنه، و دکمه هم که (در رویداد onClick) حاوی تابع Ajax هست که اطلاعات رو بعد از هر بار کلیک به صورت Ajax می گیره ...
محتویات رو هم در اون قسمت کد ها :
document.getElementById("comments").innerHTML=xmlH ttp.responseText;}
به جای comments (من چون از این کد برای گرفتن نظرات سایتم استفاده می کنم) ID مربوط به همون تگ تون که قراره اطلاعات قرار بگیره رو بزارین ...
abolix
چهارشنبه 06 خرداد 1394, 10:05 صبح
مقدور هست ای دی یاهوتون رو بدید . یا هر پل ارتباطی دیگه ای رو پ خ کنید ؟
abolix
چهارشنبه 06 خرداد 1394, 16:03 عصر
یعنی جای به این بزرگی یکی نمیتونه درست کنه ؟
abolix
چهارشنبه 06 خرداد 1394, 16:05 عصر
برای سوال اول می تونید اون رویداد رو در یک دکمه که type اش hidden هست بزارید (onclick) و با استفاده از SetInterval و زمان 2 ثانیه، بیاین و روی اون دکمه کلیک کلیک کنید مثلا :
function myFunction() {
setInterval(alertFunc, 3000);
}
function alertFunc() {
$("button").click();
}
هر 2 ثانیه یک بار می آد روی دکمه کلیک می کنه، و دکمه هم که (در رویداد onClick) حاوی تابع Ajax هست که اطلاعات رو بعد از هر بار کلیک به صورت Ajax می گیره ...
محتویات رو هم در اون قسمت کد ها :
document.getElementById("comments").innerHTML=xmlH ttp.responseText;}
به جای comments (من چون از این کد برای گرفتن نظرات سایتم استفاده می کنم) ID مربوط به همون تگ تون که قراره اطلاعات قرار بگیره رو بزارین ...
الان میشه کد همون دکمه که باید از onclick استفاده کنم رو بدید چون اصلا جاوا بلد نیستم فقط اچ تی ام ال و سی اس اس
ABZiko
چهارشنبه 06 خرداد 1394, 16:21 عصر
بفرمائید :
<button onClick="AjaxRequest();"></button>
تابع Ajax هم که بالا تر قرار دادم، والا من خیلی کارتون متوجه نشدم، می شه بیشتر در رابطه با پلاگینتون صحبت کنید، چون من که نگاه کردم یک فایل XML بود ...
abolix
چهارشنبه 06 خرداد 1394, 18:56 عصر
راستشو بخواید من از کاربران یکی از انجمن های اسکریپت ipboard هستم
و الان خیلی ها درخواست دادن که پلاگینی شبیه به پلاگین vietvbb اسکریپت ویبولتین ساخته بشه
منم خیلی جاهاشو ساختم که سورسشونو خدمتتون دادم
اما در ایجکس سازی گیر کردم
خیلی جا ها رفتم نتونستم ایجکسش کنم
abolix
چهارشنبه 06 خرداد 1394, 18:59 عصر
اگه میشه پل ارتباطی قرار بدید چون کامل نمیشه توضیح داد ! ....
abolix
پنج شنبه 07 خرداد 1394, 09:08 صبح
خب این که کاری نداره، شما اون اطلاعات رو که قراره از هر جا بگیری توی یک صفحه می ریزی، بعد توی همون صفحه اصلی که قراره نمایشش بده این رو می نویسی:
<script type="text/javascript">
function AjaxRequest(){
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
} catch (e) {
try {
// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your Browser doesn't support Ajax !");
return false;
}
}
}
var url = 'GetCommentsAjax.php';
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4){
document.getElementById("comments").innerHTML="<img src='Images/Progress.gif' />";}
if (xmlHttp.readyState == 4) {
document.getElementById("comments").innerHTML=xmlHttp.responseText;}}
xmlHttp.open("GET", url, true);
xmlHttp.send();
}
</script>
بعد به جای اون url، آدرس مورد نظرت که همون فایل هست رو می نویسی، می تونی در هنگام گرفتن اطلاعات هم یک Loading نمایش بدی که من توی همین کد ها این کار رو کردم ...
بعد از اینکه این کد رو نوشتی، باید یک جا این تابع رو فراخوانی کنی، به همین منظور توی رویداد های همون تب مثل onclick باید اون تابع رو فراخوانی کنی که بعد از هر بار کلیک شدن روی تب، اطلاعات رو به صورت Ajax بگیره ...
حرفتون درست اما تو افزونه من لینکی وجود نداره کد ها مستقیما میرن تو index.php
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.