PDA

View Full Version : مشکل کوچکی با ajax



djscsi
دوشنبه 11 مرداد 1389, 19:46 عصر
دوستان من تو پروژم این کد رو نوشتم
xmlHttp.onreadystatechange=stateChanged;
اینم تابع statechanged
function stateChanged(emid)
{
element=document.getElementById(emid);
}
همانطور که میبینید این تابع یه ورودی داره که من میخام هر دفعه با توجه به emid که یک رشته هست یه elementی رو مقدارشو بخونم . یعنی emid در اصل id یک کنترلیه که هر دفعه فرق میکنه اما این emid رو کجا باید مقدار دهی کنم تا داخل تابع stateChanged شناخته بشه؟
ممنون

djscsi
سه شنبه 12 مرداد 1389, 02:11 صبح
یعنی کسی واقعا نمیدونه؟

milad89
سه شنبه 12 مرداد 1389, 08:50 صبح
دوست عزیز اگه میشه با جزییات بیشتر توضیح بدین فکر کنم بتون کمکتون کنم

djscsi
پنج شنبه 14 مرداد 1389, 20:19 عصر
ممنون از توجهتون
ببینید مشکل در استفاده از این تابع هست( document.getElementById(emid
همانطور که میبینید اون یه ورودی داره که id یک کنترل در صفحه هست.
حالا مشکل من اینه که از اون در این تابع استفاده کردم اینجوری


function stateChanged(emid)
{
element=document.getElementById(emid);
}


تا بتونم stateChanged رو با id های مختلف فرا خوانی کنم اما نمیشه

Reza1607
جمعه 15 مرداد 1389, 12:21 عصر
شما بايد هر كجا كه مي خواين اين تابع رو فراخواني كنيد و تو قسمت رويدادهاي هر كنترل به صورت زير عمل كنيد
مثلا شما مي خواي تو رويداد كليك يك تكست باكس اين تابع فراخواني بشه



<input type='textbox' id='txt1' onclick="stateChanged('txt1');">

يك روش ديگه هم به اين صورت



<input type='textbox' id='txt1' onclick="stateChanged(this);">

و در قسمت تابع



function stateChanged(emid)
{
var element=emid.value;
}

كه در اين مثال مقدار كنترل رو داخل متغيير element مي ريزه

djscsi
شنبه 16 مرداد 1389, 23:57 عصر
ببینید من اون رو به یه تابع دیگه میفرستم اینجوری f(emid) و emid رو یم متغییر سراسری تعریف کردم یعنی زیر تک <script langugae...> نوشتم var emid خوب emid در تابع f شناخته میشه و در این تابع من تابع stateChanged رو فراخونی کردم که در اون از emid استفاده کردم و با توجه به اینکه emid متغییر سراسریت و در f هم درست کار میکنه و مقدار دهی شده من توقع دارم که در stateChanged هم شناخته بشه و نیست چرا؟
ممنون