ايران ويج

نسخه‌ی کامل: نوشتن on change مربوط به دستور select
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
من تو فرمم یه combo دارم و یک textbox حالا می خوام هر موقع که combo مقدارش عوض میشه تعداد رکورد هایی رو که مقدارشون با این مقدار combo برابر هست را در textbox نشون بدم یعنی درon change مربوط به combobox این کارها رو انجام بدم چه جوری باید این event رو مشخص می کنیم . (این event رو می خوام با asp بنویسم)
تا اونجا كه من فهميدم تو نميتوني اي كارو با ASP بكني چون ASP سرور سايد هست و كاري كه شما ميخوايي انجامش بدي توي كلاينت انجام ميشه . اين كارو ميتوني با javascirpt انجام بدي.
ولي من ميتونم با پي اچ پي اينكارو بكنم Biggrin Biggrin
اي اس پي بلد نيستم به خاطر اون نميتونم Biggrin
ashkan نوشته است:تا اونجا كه من فهميدم تو نميتوني اي كارو با ASP بكني چون ASP سرور سايد هست و كاري كه شما ميخوايي انجامش بدي توي كلاينت انجام ميشه . اين كارو ميتوني با javascirpt انجام بدي.
من یه تابعی با vbscript نوشتم ولی درست کار نمی کنه یعنی مقدار n در عبارت sql همیشه صفره .شما می دونید چه جوری میشه درستش کرد یا با jscript چه جوری میشه نوشتش ؟

کد:
<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>
اين كد رو داشته باش
کد:
<select name="items" onChange="txtf.value=items.value;">
  <option value="1" selected>Test1</option>
  <option value="2">Test2</option>
  <option value="3">Test3</option>
  <option value="4">Test4</option>
</select>
<input type="text" name="txtf">
حالا مقدار وقتي تغيير ميكنه توي يه تكست باكس ميريزه حالا ديگه بقيه كار رو ميتوني انجام بدي
میشه بگید در javascirpt کدهای اتصال به بانک اطلاعاتی رو چه جوری می نویسند ؟
تو اصلا نميتوني با جاوا اسكريپت ارتباط با بانك داشته باشي
ashkan نوشته است:تو اصلا نميتوني با جاوا اسكريپت ارتباط با بانك داشته باشي
پس باید چی کار کنم ؟
من نميدونم اصلا ميخوايي چيكار كني تا بهت بگم ؟
نقل قول: من تو فرمم یه combo دارم و یک textbox حالا می خوام هر موقع که combo مقدارش عوض میشه تعداد رکورد هایی رو که مقدارشون با این مقدار combo برابر هست را در textbox نشون بدم یعنی درon change مربوط به combobox این کارها رو انجام بدم چه جوری باید این event رو مشخص می کنیم . (این event رو می خوام با asp بنویسم)

دوست من ، متاسفانه اینکار با ASP کلاسیک ( بصورت بلادرنگ) قابل انجام نیست !
منظورم از بلادرنگ اینه که شما به محض تغییر Combo نتایح رو توی textbox مشاهده کنی که در این حالت امکان پذیر نیست . در واقع شما داری با پروتکل HTTP ( که یک پروتکل stateless که بر مبنای درخواست و جواب هست ) اطلاعات رو رد و بدل می کنی ! در خواست اون جستجوی تعداد رکورد هات باید ابتدا از طریق این پروتکل به سرور ارسال بشه و نتایج ( با کمک ASP ) از دیتابیس بیرون کشیده بشه اونوقت در مرجله بعد نتیجه (با کمک کد های جاوااسکریپت) در textbox نمایش داده بشه ! در واقع کاربر باید منتظر بمونه تا درخواست به سرور ارسال بشه و بعد صفحه دوباره نمایش داده بشه مثل اینکه صفحه دوباره Refresh شده باشه . مطمعنا برای کابر های صفحه شما این موضوع اصلا خوشایند نخواهد بود . حتی در این حالت شما باید تمام متغیر ها و اطلاعات دیگه موجود روی اجزای دیگه فرمت رو قبل از ارسال درخواست ذخیره کنی ( توی هر چیزی مثل کوکی یا متغیر های Session ) و اونها رو دوباره بازسازی کنی ! این یعنی یه درد سر بزرگ !

اینکار توی ASP.Net کاملا قابل اجراست و در واقع یکی از برتری های اون نسبت به ASP کلاسیک هست و در واقع ترکیبیست از مدل کلایت ساید و سرور ساید ! اگر با ASP.Net مشکلی ندارید میتونم بیشتر کمکتون کنم !
اگه کمکم کنید ممنون میشم .
Mamad2003 نوشته است:
نقل قول: من تو فرمم یه combo دارم و یک textbox حالا می خوام هر موقع که combo مقدارش عوض میشه تعداد رکورد هایی رو که مقدارشون با این مقدار combo برابر هست را در textbox نشون بدم یعنی درon change مربوط به combobox این کارها رو انجام بدم چه جوری باید این event رو مشخص می کنیم . (این event رو می خوام با asp بنویسم)

دوست من ، متاسفانه اینکار با ASP کلاسیک ( بصورت بلادرنگ) قابل انجام نیست !
منظورم از بلادرنگ اینه که شما به محض تغییر Combo نتایح رو توی textbox مشاهده کنی که در این حالت امکان پذیر نیست . در واقع شما داری با پروتکل HTTP ( که یک پروتکل stateless که بر مبنای درخواست و جواب هست ) اطلاعات رو رد و بدل می کنی  !  در خواست اون جستجوی تعداد رکورد هات باید ابتدا از طریق این پروتکل به سرور ارسال بشه و نتایج ( با کمک ASP ) از دیتابیس بیرون کشیده بشه اونوقت در مرجله بعد نتیجه (با کمک کد های جاوااسکریپت) در textbox نمایش داده بشه ! در واقع کاربر باید منتظر بمونه تا درخواست به سرور ارسال بشه و بعد صفحه دوباره نمایش داده بشه مثل اینکه صفحه دوباره Refresh شده باشه . مطمعنا برای کابر های صفحه شما این موضوع اصلا خوشایند نخواهد بود . حتی در این حالت شما باید تمام متغیر ها و اطلاعات دیگه موجود روی اجزای دیگه فرمت رو قبل از ارسال درخواست ذخیره کنی ( توی هر چیزی مثل کوکی یا متغیر های Session ) و اونها رو دوباره بازسازی کنی ! این یعنی یه درد سر بزرگ !

اینکار توی ASP.Net کاملا قابل اجراست و در واقع یکی از برتری های اون نسبت به ASP کلاسیک هست و در واقع ترکیبیست از مدل کلایت ساید و سرور ساید ! اگر با ASP.Net مشکلی ندارید میتونم بیشتر کمکتون کنم !