• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

نوشتن on change مربوط به دستور select

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
سلام
من تو فرمم یه combo دارم و یک textbox حالا می خوام هر موقع که combo مقدارش عوض میشه تعداد رکورد هایی رو که مقدارشون با این مقدار combo برابر هست را در textbox نشون بدم یعنی درon change مربوط به combobox این کارها رو انجام بدم چه جوری باید این event رو مشخص می کنیم . (این event رو می خوام با asp بنویسم)
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdvirus :
PHP:
<select name="name" onchange="JavaScript:history.go(-1)">
ببینید اینجا تابع رو با js نوشتید ولی من می خوام با vbscript یه تابع بنویسم که بتونم اطلاعاتی رو که می خوام یعنی تعداد رکورد ها رو از db استخراج کنم چه طور ی این تابع رو با vbs بنویسم یعنی طریقه نوشتن تابع و صدا زدن اون با vbscript چه جوری هست ؟
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
اكثر مرورگر ها (فكر كنم همه بغير از IE ) ويبي اسكريپت رو ساپورت نميكنن بهتره از جاوا اسكريپت استفاده كني...ويبي ش زياد فرق نميكنه :

کد:
<select name="name" language=vbscript onchange="call history.go(-1)">

اين ها اسكريپت تحت كلاينت هستن توي سرور اجرا نميشن چه ربطي به db داره...؟
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از plus :
اكثر مرورگر ها (فكر كنم همه بغير از IE ) ويبي اسكريپت رو ساپورت نميكنن بهتره از جاوا اسكريپت استفاده كني...ويبي ش زياد فرق نميكنه :

کد:
<select name="name" language=vbscript onchange="call history.go(-1)">

اين ها اسكريپت تحت كلاينت هستن توي سرور اجرا نميشن چه ربطي به db داره...؟
ببینید من می خواستم ببینم خود تابع رو با VBSCRIPT توی صفحه وب چه جوری بنویسم
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
یک راهش اینه که optionهای select توسط کد asp ساخته بشن و همون هنگام تعداد رکوردهای متناظر با هر انتخاب محاسبه و در صورت انتخاب کاربر نمایش داده بشن. خاصیتش به اینه که با هر بار انتخاب دیگه سراغ دیتابیس نمیره و بلافاصله نمایش میده ولی عیبش اینه که بعد از load شدن صفحه اگر تغییری در دیتابیس داده بشه آپدیت نیست مگر تا refresh بعدی.

راه دیگه اینه که با هر انتخاب، صفحه به خودش post بشه و مقدار انتخاب هم بعنوان متغیر باشه. در اینصورت همیشه اطلاعات آخرین لحظه نشون داده میشه ولی overhead داره.

بسته به کاربر انتخاب با برنامه نویس هست.
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mazoolagh :
یک راهش اینه که optionهای select توسط کد asp ساخته بشن و همون هنگام تعداد رکوردهای متناظر با هر انتخاب محاسبه و در صورت انتخاب کاربر نمایش داده بشن. خاصیتش به اینه که با هر بار انتخاب دیگه سراغ دیتابیس نمیره و بلافاصله نمایش میده ولی عیبش اینه که بعد از load شدن صفحه اگر تغییری در دیتابیس داده بشه آپدیت نیست مگر تا refresh بعدی.

راه دیگه اینه که با هر انتخاب، صفحه به خودش post بشه و مقدار انتخاب هم بعنوان متغیر باشه. در اینصورت همیشه اطلاعات آخرین لحظه نشون داده میشه ولی overhead داره.

بسته به کاربر انتخاب با برنامه نویس هست.
یکی به من بگه کجای این تابع که با vbscript نوشتم غلطه که اجرا نمی شه ؟
کد:
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> 
<!-- 

<%
Sub shomareh_doreh_onchange 
'document.form1.numberperson.value=document.form1.shomareh_doreh.value 
 set con=server.CreateObject("adodb.connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+server.mappath("gavahi_gostaresh.mdb")+";Persist Security Info=False"
set rst=server.CreateObject("adodb.recordset") 
n=document.form1.shomareh_doreh.value
strsql="select * from person where  shomareh_sabt_doreh like '"&trim(n)&"'"
rst.open strsql,con,1,3
if rst.RecordCount >0 then	
	c= rst.recorscount
 document.form1.numberperson.value=c
	end if
'response.write(rst.recordcount)

rst.close
con.close
End Sub 
--> 
%>
</script>
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
ميشه يكم در مورد اين كدت توضيح بدي اصلا سمت سروره يا كلاينت؟! اول تگ اسكريپت بعد < ! - - بعد < % بعد استفاده از آبجكت Server (كه مربوط به كد سمت سروره!) بعد استفاده از شي document كه مربوط به مرورگر و كلا خروجي (مربوط به كد سمت كلاينت!!) هستش.بعدش قبل از %> تگ < - - رو بستي!(در صورتي كه اول اين تگ شروع شده و آخر هم بايد بسته بشه) ... ؟؟!
من كه پاك گيج شدم!
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از plus :
ميشه يكم در مورد اين كدت توضيح بدي اصلا سمت سروره يا كلاينت؟! اول تگ اسكريپت بعد < ! - - بعد < % بعد استفاده از آبجكت Server (كه مربوط به كد سمت سروره!) بعد استفاده از شي document كه مربوط به مرورگر و كلا خروجي (مربوط به كد سمت كلاينت!!) هستش.بعدش قبل از %> تگ < - - رو بستي!(در صورتي كه اول اين تگ شروع شده و آخر هم بايد بسته بشه) ... ؟؟!
من كه پاك گيج شدم!
کد:
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> 



Sub shomareh_doreh_onclick

'document.form1.numberperson.value=document.form1.shomareh_doreh.value 

<%

set con=server.CreateObject("adodb.connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+server.mappath("gavahi_gostaresh.mdb")+";Persist Security Info=False"
set rst=server.CreateObject("adodb.recordset") %>
 n=document.form1.shomareh_doreh.value
<% strsql="select * from person where shomareh_sabt_doreh like '"&n&"' "
 'strsql="select * from person"

rst.open strsql,con,1,3
if rst.RecordCount >=0 then	%>
'c=<% =rst.recordcount%>
'document.form1.numberperson.value=n
document.form1.numberperson.value=<%=rst.recordcount%>
	<%end if%>
'response.write(rst.recordcount)

<%rst.close
con.close%>

End Sub 


</script>
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
اينجا :

کد:
n=document.form1.shomareh_doreh.value
<% strsql="select * from person where shomareh_sabt_doreh like '"&n&"' "

كد هاي سمت سرور (كه بين <% و %> هستن) اول اجرا ميشن.پس n براي كد هاي سمت سرور اصلا تعريف نشده!...
در ضمن ديتا بيس رو من ندارم كه خروجي ها رو ببينم ولي با فرض اينكه ديتابيس ميشكلي نداشته باشه كد هاي ديتا بيس رو حذف كردم و يه فرم همينطوري به كد اضافه كردم كار كرد.
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از plus :
اينجا :

کد:
n=document.form1.shomareh_doreh.value
<% strsql="select * from person where shomareh_sabt_doreh like '"&n&"' "

كد هاي سمت سرور (كه بين <% و %> هستن) اول اجرا ميشن.پس n براي كد هاي سمت سرور اصلا تعريف نشده!...
در ضمن ديتا بيس رو من ندارم كه خروجي ها رو ببينم ولي با فرض اينكه ديتابيس ميشكلي نداشته باشه كد هاي ديتا بيس رو حذف كردم و يه فرم همينطوري به كد اضافه كردم كار كرد.
n همیشه صفره یعنی به قول شما برای کدهای سمت سرور تعریف نشده حالا که دستورselect رو اجرا می کنم درست در نمی یاد چه جوری می تونم این n رو به سرور بشناسونم ؟
کد:
<SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript> 



Sub shomareh_doreh_onclick

'document.form1.numberperson.value=document.form1.shomareh_doreh.value 

<%

set con=server.CreateObject("adodb.connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+server.mappath("gavahi_gostaresh.mdb")+";Persist Security Info=False"
set rst=server.CreateObject("adodb.recordset") %>
 n=document.form1.shomareh_doreh.value
 <%strsql="select * from person where shomareh_sabt_doreh like '"&n&"' "%>
 'strsql="select * from person"

<%rst.open strsql,con,1,3
if rst.RecordCount >=0 then	%>
'c=<% =rst.recordcount%>
'document.form1.numberperson.value=n
document.form1.numberperson.value=<%=rst.recordcount%>
	<%end if%>
'response.write(rst.recordcount)

<%rst.close
con.close%>

End Sub 


</script>
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از plus :
دقيقا اين كد قراره چكار بكنه؟
ببینید من یه combo و یه textbox روی فرمم دارم حالا می خوام به محض اینکه مقداری رو از combo انتخاب کردم تعداد رکورد هایی که در db با این مقدار برابر هستند رو در textbox نشون بدم یعنی باید در onclick مربوط به combo بنویسم که به محض تغییر مقدار combo ُ، تعداد رکورد ها را محاسبه کرده و در textbox نشون بده .
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
2 راه دارین.یکی اینکه اول همه اطلاعات رو از سرور بگیرین(یعنی همون تعداد رکورد ها..) و توی یک اسریپت بزارین و با کلیک شدن اطلاعات مورد نظر رو نشون بدین یا اینکه بعد از کلیک شدن روی Combo باید form رو Submit کنین و اطلاعات مربوط به اون عدد رو از سرور بگیرین و نشون بدین...

شماره دوره ها (n ها) تو چه رنجی هستن؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
از گزینه onchange چرا استفاده نمی کنی ...
فکر کنم با این بتونی مشکلتو حل کنی . در غیر این صورت همونی که Plus گفت رو انجام بده . یعنی وقتی که صفحه لود میشه تمام فیلد های مربوطه تو اسکریپت قرار بگیره
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
از گزینه onchange چرا استفاده نمی کنی ...
فکر کنم با این بتونی مشکلتو حل کنی . در غیر این صورت همونی که Plus گفت رو انجام بده . یعنی وقتی که صفحه لود میشه تمام فیلد های مربوطه تو اسکریپت قرار بگیره

شما می دونید در javascript چه جوری کدهای اتصال به بانک اطلاعاتی رو می نویسند ؟ یعنی در تابع بالایی که من نوشته ام چه جوری به بانکم وصل شم ؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
یه تابع JavaScript بزار داخل اون از ASP استفاده کن
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
یه تابع JavaScript بزار داخل اون از ASP استفاده کن
اصلا کد ها درست در نمی یاد تورو خدا یکی کمک کنه ؟
کد:
<script Language="JavaScript" >
function onchange2(){

<%set con=server.CreateObject("adodb.connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+server.mappath("gavahi_gostaresh.mdb")+";Persist Security Info=False"
set rst=server.CreateObject("adodb.recordset")%>
 n=document.form1.shomareh_doreh.value
<%strsql="select * from person where shomareh_sabt_doreh like '"& n&"' "%>
 
<%rst.open strsql,con,1,3%>
<%if (rst.RecordCount >=0) then%>
//document.form1.numberperson.value=n
document.form1.numberperson.value=<%=rst.recordcount%>
<%end if%>

<%rst.close
con.close%>

}
</script>
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
چی درست در نمی یاد ؟؟؟
مقدار rst.recordcount رو 0 میذاره منظورم این کده ؟
کد:
document.form1.numberperson.value=<%=rst.recordcount%>;
 
بالا