PDA

View Full Version : سوال: لطفا بگین مشکل این تابع تو کجاشه ( هر کاری میکنم حل نمیشه)



amirkh
شنبه 08 فروردین 1388, 20:46 عصر
سلام . من یه تابعی نوشتم واسه ارسال اطلاعات به PHP و استفاده از ایجکس .
الان یه حلقه توو تابع گذاشتم که اون باعث می شه که تابع کار نکنه . وقتی حلقه رو بر می دارم alert کار می کنه . اما وقتی می ذارم از کار میفته .
می خواستم لطف کنید و بگید مشکل از چیه ؟ ممنون http://www.forum.majidonline.com/majidonline/smiley_new/majidonline_rose.gif



function send_forcaset('id')
{
var num = (document.forms.amirform.elements.length - 3) / 3;
window.alert(num);
for(k = 1;k <= num;k++)
{
var guest+k = document.getElementById('G'+k).value;
var center+k = document.getElementById('C'+k).value;
var host+k = document.getElementById('H'+k).value;

var Data += "guest"+k + "=" + guest+k + "&center"+k + "=" center+k + "&host"+k + "=" + host+k;
}
PrintResult('Please Wait . . .',id);
PostData(Data,'forecast2.php',id);
return false;
}

حامد مصافی
یک شنبه 09 فروردین 1388, 11:16 صبح
var guest_k = document.getElementById('G'+k).value;
var center_k = document.getElementById('C'+k).value;
var host_k = document.getElementById('H'+k).value;

amirkh
یک شنبه 09 فروردین 1388, 12:41 عصر
سلام . k+ قبل از مساوي گذاشتم واسه اينکه با هر بار چرخش حلقه ، نام متغير عوض بشه :
guest1 , guest2 , guest 3 , . . .
ولي الان با _ ديگه شمارنده k که هر بار اضافه ميشه ديگه نام متغير رو عوض نميکنه ( اگه اشتباه ميگم لطفا راهنمايي کنين )
آيا راه بهتري واسه تعويض نام متغير با هر بار چرخش حلقه وجود داره ؟

ميشه بي زحمت کد درسش رو قرار بدين متاسفانه من JS زياد بلد نيستم.

حامد مصافی
یک شنبه 09 فروردین 1388, 15:50 عصر
نام متغیر را نمی توان عوض کرد.
در مثال شما نیازی به تغییر نام متغیر ندارید چون فقط در داخل حلقه استفاده می شود.
اگر می خواهید نتیجه هر اجرای حلقه را داشته باشید از آرایه استفاده کنید.


چهار خط را بدین شکل اصلاح کنید


var guest_k = document.getElementById('G'+k).value;
var center_k = document.getElementById('C'+k).value;
var host_k = document.getElementById('H'+k).value;

var Data += "guest" +k + "=" + guest_k + "&center" + k + "=" center_k + "&host" + k + "=" + host_k;

Castel_XD
دوشنبه 10 فروردین 1388, 03:52 صبح
من دوست Amirkh هستم

سلام . خسته نباشید . ممنون از راهنماییتون

من طبق راهنمایی شما از آرایه استفاده کردم و مشکلم رو حل کردم . الان تنها مشکلم اینه که وقتی با getElementById مقادیر چک باکس ها رو می گیرم ، همشو on می زنه !
می خواستم ببینم چه جووری توو جاوا اسکریپت می شه فهمید که کدوم چک باکس تیک خورده و کدوم نخورده .

کد من هم ، در حال حاضر اینه :



function send_forcaset(id)
{
var num = (document.forms.amirform.elements.length - 3) / 3;
var guest = new Array();
var center = new Array();
var host = new Array();
var Data = "";

for(k=1;k<=num;k++)
{
guest[k] = document.getElementById('G'+k).value;
center[k] = document.getElementById('C'+k).value;
host[k] = document.getElementById('H'+k).value;

Data += "guest"+k + "=" + guest[k] + "&center"+k + "=" + center[k] + "&host"+k + "=" + host[k] + "&";
window.alert(Data);
}
/*PrintResult('Please Wait . . .',id);
PostData(Data,'forecast2.php',id);
return false;*/
}

حامد مصافی
دوشنبه 10 فروردین 1388, 08:53 صبح
خصوصیت value عنوان نوشته شده در checkbox را بر می گرداند، از خصوصیت checked استفاده کنید.