PDA

View Full Version : فراخوانی تابع در قسمت data هنگار کار با ajax



resident
دوشنبه 26 اسفند 1392, 16:08 عصر
سلام.
در فانکشن زیر میشه مقدار دهی قسمت data رو توسط تابع دیگه ای انجام داد؟
من به ازاء تعداد زیادی از فرمهام باید اینو صدا کنم. همه ی قسمتها در همه ی فرمها مشترک است فقط قسمت دیتاشون با هم فرق می کنه. به همین دلیل میخوام این کار رو کنم.


function loadData(pageNumberDesired,orderby,sortdirection) {
var URL = '@Url.Action("Index", FormName)'
$.ajax({
url: URL,
dataType: 'html',
data: {
txtSearchAcquaintanceMethod_Title: $("#txtSearchAcquaintanceMethod_Title").val(),
pageNumberDesired: pageNumberDesired,
rowCountOnPage: $("#pageSize").val(),
orderBy: orderby,
sortDirection: sortdirection
},
type: 'GET',
success: function (data) {
$('#datatableDiv').html(data);
RefreshPagination(pageNumberDesired, $("#CountRows").val());
},
error: function (data) {
alert("متاسفانه سیستم موفق به بازیابی اطلاعات نمی باشد");
}
});
}

plague
دوشنبه 26 اسفند 1392, 19:04 عصر
نمیدونم درست متوجه شدم چی میخای یا نه
یه سری متغیر خارج از تابع تعریف کن و تو بخش data اونها رو بفرست
اینجوری میتونی از هرجایی مقدار دهیشون کنی بعد تابع رو فراخانی کنی تا اونا رو بفرسته




var a = 1 ,
b = 2 ,
c = 3 ;


function loadData(pageNumberDesired,orderby,sortdirection) {
var URL = '@Url.Action("Index", FormName)'
$.ajax({
url: URL,
dataType: 'html',
data: {
a:a ,
b:b,
c:c

},
}

resident
دوشنبه 26 اسفند 1392, 19:09 عصر
نمیدونم درست متوجه شدم چی میخای یا نه
یه سری متغیر خارج از تابع تعریف کن و تو بخش data اونها رو بفرست
اینجوری میتونی از هرجایی مقدار دهیشون کنی بعد تابع رو فراخانی کنی تا اونا رو بفرسته



دوست عزیز ممنون از پاسختون...
سوالم رو بد مطرح کردم.
data در فرمهای مختلف شامل پارامترهای متفاوته نه اینکه مقادیرش متفاوت باشه...
مثلا در یه فرم شامل a,b,c است و در فرم دیگه k,h,g,y,f است و ...

plague
دوشنبه 26 اسفند 1392, 23:16 عصر
میتونی از آبجکت استفاده کنی
یجورایی مثل آاریه جاوا اسکریپتی میمونه

var obj = {};

function loadData(pageNumberDesired,orderby,sortdirection) {
var URL = '@Url.Action("Index", FormName)'
$.ajax({
url: URL,
dataType: 'html',
data: {

data : obj

},
}


obj.a = 1 ;
obj.b = 2 ;
loadData();

// دفعه دوم
obj['k'] = 3 ;
obj['j'] = 4 ;
loadData();



در دفعه دوم یجور دیگه مقدار دهی شده آبجکت
منظور اینه که به هر دو شکل میتونی مقدار دهی کنی و هردو مدل درسته

---------------------
البته من همیشه post استفاده میکنم برای ایجکس get ممکنه مشکل بوجود بیاره (نمیدونم شما چرا گت استفاده کردی ! )

resident
سه شنبه 27 اسفند 1392, 07:54 صبح
ممنون از پاسختون..
اول از post استفاده کرده بودم اما دیدم وقتی اطلاعات بر می گرده، js های صفحه ی اصلی از بین می رفت و فقط همون html برگشتی موجود بود. .وقتی post گذاشتم این مشکل حل شد
آیا روشی برای حل این مشکل وجود داره؟

plague
سه شنبه 27 اسفند 1392, 14:55 عصر
js رو باید تو صفحه اصلی که توش درخواست ایجکس ارسال میشه ضمیمه کنی