PDA

View Full Version : سوال: فرستادن یک مقدار به یک فایل جاوا اسکریپت



peymannaji
پنج شنبه 02 آبان 1387, 10:29 صبح
با سلام

من یک تابع در یک فایل جاوا اسکریپت دارم که میخوام با کلیک بروی یک دکمه مقداری که از دیتابیس گرفتم رو درون کد جاوا قرار بدم و لازم بذکر است که این تابع که درون فایل جاوا اسکریپت است ورودی نمیگیره فقط یک روال رو اجرا میکنه .
خوب تا اینجا من فقط میتونم فایل حاوی کد جاوا اسکریپت رو به صفحه خودم چه با asp.net چه با تگهای html اضافه کنم . اما بعد از اون نمیدونم چگونه مقدار مورد نظرم رو در تابعی که درون فایل جاوا اسکریپت است قرار بدم و روال رو اجرا کنم .

دوستان اگر ممکن هست یک راهنمایی کنند تا الگوریتم پیاده سازی اون دستم بیاد .

با تشکر

raravaice
پنج شنبه 02 آبان 1387, 10:37 صبح
2 تا راه داری:

یکی اینکه اون فایل رو به صورت Dynamic ایجاد کنی (" با استفاده از ashx ترجیحا")

دوم اینکه یه متغییر عمومی توی صفحه ایجاد کنی و اون متغییر رو از سمت سرور مقدار دهی کنی و توی فایل دقیقا از همون متغییر استفاده کنی.

موفق باشید

peymannaji
پنج شنبه 02 آبان 1387, 10:59 صبح
کد داخل فایل جاوا اسکریپت بصورت زیر هست :



var timer;
var div = null;
var min_divWidth = 0;
var max_divWidth = 100
var divWidth = 0;
var injector = 2;
var interval = 30;
function animate() {
if( !div ) {
div = document.getElementById( 'div_id' );
}
if( divWidth == min_divWidth ) {
div.style.display = 'inline';
}
if( divWidth > 0 && divWidth < 100 ) {
return;
}
timer = setInterval( 'start()', interval );
}
function start() {
divWidth += injector;
div.style.width = divWidth + 'px';
if( divWidth == min_divWidth || divWidth == max_divWidth ) {
stop();
injector *= -1;
}
}
function stop() {
clearInterval( timer );
if( divWidth == min_divWidth ) {
div.style.display = 'none';
}
}


از اونجایی که من کدها رو مستقیم وارد صفحه نکردم و در فایل هست و از طرفی میخوام مقدار متغیرهایی که در ابتدا تعریف شده رو بصورت داینامیک تغییر بدم نمیدونم چکار باید کرد

peymannaji
پنج شنبه 02 آبان 1387, 11:01 صبح
2 تا راه داری:

یکی اینکه اون فایل رو به صورت Dynamic ایجاد کنی (" با استفاده از ashx ترجیحا")

دوم اینکه یه متغییر عمومی توی صفحه ایجاد کنی و اون متغییر رو از سمت سرور مقدار دهی کنی و توی فایل دقیقا از همون متغییر استفاده کنی.

موفق باشید


دوست عزیز ممنون . ممکن هست کمی بیشتر توضیح بدین در مورد راهی که فرمودید .

raravaice
پنج شنبه 02 آبان 1387, 12:27 عصر
من فرض رو بر این میگیرم که متغییرinjector قرار هست که از سمت سرور مقدار بگیره.

پس داخل صفحه دارم :


<html>
<head>
<script>
var injector = <%=injector%>;
</script>
<script src='myfile.js' />
</head>
<body>
.
.
.
.
</body>
</html>


حالا از سمت سرور :



public injector as integer = 2



var injector = 2 هم از توی فایل js برداشته میشه.


موفق باشید

peymannaji
پنج شنبه 02 آبان 1387, 13:50 عصر
دوست عزیز ممنون از محبتتون . مشکلم حل شد . ولی کاشکی میشد همین یک خط رو هم تو خود فایل قرار میدادیم آیا میشه این کار رو کرد ؟



var injector = <%=injector%>;

raravaice
پنج شنبه 02 آبان 1387, 15:32 عصر
باید از راه اولی که گفتم استفاده کنی ashx کار پیچیده میشه و احساس میکنم برای کار شما لازم نیست این کار انجام بشه.

موفق باشید

peymannaji
پنج شنبه 02 آبان 1387, 23:17 عصر
با تشکر از راهنمایی های مفیدتون . از اینکه زحمت به شما دادم شرمنده . اگر در مورد استفاده از ashx رفرنسی دارید محبت میکنید به بنده معرفی کنید ؟
در واقع من یک سیستم نظرسنجی دارم درست میکنم که جالب هست و بزودی در سایت قرار میدم که ترکیبی از جاوا اسکریپت و asp.net‌ هست و کدهای جاوا اسکریپتم حالت داینامیک دارن. و در واقع میخوام تا اونجا که میشه کدهام منطقی و استاندارد باشه.

موفق و پیروز باشید دوست عزیز

dr_csharp
یک شنبه 05 آبان 1387, 09:44 صبح
دوم اینکه یه متغییر عمومی توی صفحه ایجاد کنی و اون متغییر رو از سمت سرور مقدار دهی کنی و توی فایل دقیقا از همون متغییر استفاده کنی.

نام این تکنیک چیه ؟

raravaice
یک شنبه 05 آبان 1387, 10:40 صبح
نام این تکنیک چیه ؟

چه عرض کنم!
من تا حالا اسم فنی برای این روش به گوشم نخورده

موفق باشید

dr_csharp
یک شنبه 05 آبان 1387, 11:32 صبح
چه عرض کنم!
من تا حالا اسم فنی برای این روش به گوشم نخورده

موفق باشید
خوب چطور میشه که یک متغیر serverside در client در دسترس واقع میشه ؟

raravaice
یک شنبه 05 آبان 1387, 11:35 صبح
خوب چطور میشه که یک متغیر serverside در client در دسترس واقع میشه ؟

متغییر در دسترس قرار نمیگیره! مقدار متغیر بین سرور و کلاینت تبادل میشه.

موفق باشید