PDA

View Full Version : اجرای تابع در load !



abbaszz
چهارشنبه 20 دی 1391, 15:09 عصر
سلام.

<input type="button" value="پاک کردن" onclick="return ResetCheckBox();" id="clear_form"/>
یه باتن بصورت بالا دارم که وقتی روش کلیک میکنم چک باکس های من پاک میشه
اما میخوام بدون کلیک این اتفاق بیفته. یعنی به محض رسیدن به خط بالا چک باکس ها پاک بشه
تابع هم ResetCheckBox(); هست
راهنمایی لطفا :)

Tarragon
چهارشنبه 20 دی 1391, 15:27 عصر
بنظرم بجای onclick بزارید onload درست شه:

<input type="button" value="پاک کردن" onload="return ResetCheckBox();" id="clear_form"/>

abbaszz
چهارشنبه 20 دی 1391, 19:40 عصر
بنظرم بجای onclick بزارید onload درست شه:

<input type="button" value="پاک کردن" onload="return ResetCheckBox();" id="clear_form"/>

ممنون. نه دوست عزیز این به ذهنم رسید اما جواب نداد...
بقیه دوستان راهنمایی لطفا...

siavashsay
چهارشنبه 20 دی 1391, 20:03 عصر
خوب اگر کدهای شما توی php هست میتونید با استفاده از دستور echo یک اسکریپت جاوا رو اجرا و تابع اون رو فراخوانی کنید !

// any code
echo "<script> ResetCheckBox() </script> ";
// any code
اما اگر بازم توضیح کاملتری بدید میشه بهتر کمک کرد ! :)

abbaszz
چهارشنبه 20 دی 1391, 20:42 عصر
خوب اگر کدهای شما توی php هست میتونید با استفاده از دستور echo یک اسکریپت جاوا رو اجرا و تابع اون رو فراخوانی کنید !

// any code
echo "<script> ResetCheckBox() </script> ";
// any code
اما اگر بازم توضیح کاملتری بدید میشه بهتر کمک کرد ! :)

مرسی. این روش هم نشد متاسفانه
من یه باتن دارم که بعد از اینکه کاربر روش کلیک میکنه یه سری محاسبات رو انجام میده اگه مشکل داشته باشه اررور مربوطه رو نشون میده و در اینجا نمیخوام چک باکس ها پاک بشن... اما اگه مشکلی نداشته باشه میخوام پیامی نشون بده و بعد چک باکس هارو پاک کنه...

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

<input type="button" value="پاک کردن" onclick="return ResetCheckBox();"/>

در ضمن فکر میکنم این تابع فقط برای تگ input تعریف شده!

mohsen_31369
چهارشنبه 20 دی 1391, 21:03 عصر
یعنی به محض رسیدن به خط بالا چک باکس ها پاک بشه
)
منظورت رو از جمله ی بالا نمیفهمم . مگه html مثل پی اچ پی که بخواد خط به خط اجرا بشه.
اگه منظورت اینه که وقتی سایت لود میشه این تابع اجرا بشه باید رویداد onLoad رو توی تگ body قرار بدی

abbaszz
چهارشنبه 20 دی 1391, 21:11 عصر
منظورت رو از جمله ی بالا نمیفهمم . مگه html مثل پی اچ پی که بخواد خط به خط اجرا بشه.
اگه منظورت اینه که وقتی سایت لود میشه این تابع اجرا بشه باید رویداد onLoad رو توی تگ body قرار بدی

نه. همونطور که گفتم میخوام بعد انجام عملیات خاصی اجرا بشه
در ضمن این کد رو توی php اجرا میکنم. در ضمن انگار این تابع به جز تگ input جای دیگه ای اجرا نمیشه!

siavashsay
چهارشنبه 20 دی 1391, 21:19 عصر
باز هم دقیقا نمیدونم اما یک کد مینویسم !
واسه اینکار نیاز به jQeury دارید - پس کتابخانه jQeury رو در ابتدا در قسمت Head صفحه تون ضمیمه کنید !
بعد یک div بسازید که داخل اون Check Box هاتون قرار دارن و آیدی div رو cBoxDiv بگذارید !
بعد در هر قسمت از PHP که خواستید مثل همون روش قبل این کد رو echo کنید !


echo "<script>$(document).ready(function(e) { $('#cBoxDiv').hide(); });</script>";

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

mohsen_31369
چهارشنبه 20 دی 1391, 21:20 عصر
رویداد onLoad رو میگی که فقط تو تگ input اجرا میشه؟

abbaszz
چهارشنبه 20 دی 1391, 21:34 عصر
رویداد onLoad رو میگی که فقط تو تگ input اجرا میشه؟

نه تابع ResetCheckBox رو میگم فک کنم فقط واسه input تعریف شده! چون کدها رو کس دیگه نوشته! مطمئن نیستم

abbaszz
چهارشنبه 20 دی 1391, 21:35 عصر
باز هم دقیقا نمیدونم اما یک کد مینویسم !
واسه اینکار نیاز به jQeury دارید - پس کتابخانه jQeury رو در ابتدا در قسمت Head صفحه تون ضمیمه کنید !
بعد یک div بسازید که داخل اون Check Box هاتون قرار دارن و آیدی div رو cBoxDiv بگذارید !
بعد در هر قسمت از PHP که خواستید مثل همون روش قبل این کد رو echo کنید !


echo "<script>$(document).ready(function(e) { $('#cBoxDiv').hide(); });</script>";

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

مرسی. این روش جواب داد اما چک باکسهارو حذف میکنه!
من میخوام uncheck کنه :)
کلافه شدم از صبح. خدا کلافه تون نکنه :دی

abbaszz
چهارشنبه 20 دی 1391, 21:42 عصر
بچه ها تگ input یه رویداد داره به نام onchange یعنی میشه به جای onclick استفاده کرده
اگه input رو از نوع checkbox تعریف کنیم، اون وقت بعد از تغییر از حالت چک به آنچک یا از آنچک به چک تابع اجرا میشه.یعنی کد زیر:

<input type="checkbox" onChange="return ResetCheckBox();"/>
حالا میخوام کدی اضافه کنیم تو تگ که "تغییر" رخ بده. از این مشخصه هم استفاده کردم:
checked="checked"
اما باز در تغییر توسط کاربر تابع اجرا میشه... تغییر اتوماتیک میخواااااااااااااام!

mohsen_31369
چهارشنبه 20 دی 1391, 22:17 عصر
خوب کد آقا سیاوش رو اینجوری بنویس ببین کار میکنه یا نه



echo "<script>$(document).ready(function(e) { $('#cBoxDiv').attr('checked',false); });</script>";


یا

echo "<script>$(document).ready(function(e) { $('#cBoxDiv').prop('checked',false); });</script>";
[/CODE]

abbaszz
چهارشنبه 20 دی 1391, 22:36 عصر
خوب کد آقا سیاوش رو اینجوری بنویس ببین کار میکنه یا نه



echo "<script>$(document).ready(function(e) { $('#cBoxDiv').attr('checked',false); });</script>";


یا

echo "<script>$(document).ready(function(e) { $('#cBoxDiv').prop('checked',false); });</script>";
[/CODE]

نه جواب نداد،بازم مرسی. مهم دور هم بودنه :دی
نه prop و نه attr ...آنچک نمکینه

siavashsay
چهارشنبه 20 دی 1391, 23:06 عصر
دوست عزیز خوب میگفتی از اول میخوای uncheck بشه !
شما باید اون کدی که دوستمون گفتن درست بود با attr اما اون واسه div هست ! شما باید attr رو برای هر چک باکس بصورت جدا کار کنید !
این کد رو ببینید :

echo "<script>$(document).ready(function(e) { $('#cb1').attr('checked', true); $('#cb2').attr('checked', true); });</script>";
این کد چک باکس هایی که با آیدی cb1 و cb2 هستند رو checked میکنه ! اگر میخواین uncheck بشه مقدار true رو به false تغییر بدید !

abbaszz
چهارشنبه 20 دی 1391, 23:13 عصر
خوب اگر کدهای شما توی php هست میتونید با استفاده از دستور echo یک اسکریپت جاوا رو اجرا و تابع اون رو فراخوانی کنید !

// any code
echo "<script> ResetCheckBox() </script> ";
// any code
اما اگر بازم توضیح کاملتری بدید میشه بهتر کمک کرد ! :)

سیاوش جان این روش جواب داد. تابع فراخوانی میشه
اما همون طور که گفتم محاسباتی انجام میشه. این محاسبات و پیامهای مربوطش توی یه فایل php دیگه ست ... حالا میخوام تابع بالا بعد از پیام موردنظرم (که در فایل php دیگه ای هست) اجرا بشه
اگه کدی که شما گذاشتی رو توی صفحه ایندکس بذارم کار میکنه
اما اگه توی فایل محاسبات بذارم ،پیام از فایل محاسبات گرفته میشه و در ایندکس ظاهر میشه اما همین کد رو که بعد پیام گذاشتم اجرا نمیشه....
توی فایل محاسبات هم کتابخانه jscripts رو تعریف کردم اما باز نشد!

abbaszz
چهارشنبه 20 دی 1391, 23:16 عصر
دوست عزیز خوب میگفتی از اول میخوای uncheck بشه !
شما باید اون کدی که دوستمون گفتن درست بود با attr اما اون واسه div هست ! شما باید attr رو برای هر چک باکس بصورت جدا کار کنید !
این کد رو ببینید :

echo "<script>$(document).ready(function(e) { $('#cb1').attr('checked', true); $('#cb2').attr('checked', true); });</script>";
این کد چک باکس هایی که با آیدی cb1 و cb2 هستند رو checked میکنه ! اگر میخواین uncheck بشه مقدار true رو به false تغییر بدید !

این هم مثل همون چیزی که در بالا گفتم. در صفحه اصلی اجرا میشه درسته. اما بعد از پیام موجود در فایل انجام محاسبات که میذارم کار نمیکنه!
خیلی اذیت کردم آ :)

siavashsay
چهارشنبه 20 دی 1391, 23:28 عصر
خوب دوست عزیز این تابع رو شما باید در صفحه توابع و یا انجام محاسباتتون بذارید !
این یه نمونه بود برای اینکه شما قالب کار دستتون بیاد بعد در جای صحیح استفاده کنید !
اگر صفحه محاسباتتون ( البته در صورتی که امنیتی نیست ) رو بگذارید شاید بشه بهتر کمک کرد :)

abbaszz
چهارشنبه 20 دی 1391, 23:59 عصر
خوب دوست عزیز این تابع رو شما باید در صفحه توابع و یا انجام محاسباتتون بذارید !
این یه نمونه بود برای اینکه شما قالب کار دستتون بیاد بعد در جای صحیح استفاده کنید !
اگر صفحه محاسباتتون ( البته در صورتی که امنیتی نیست ) رو بگذارید شاید بشه بهتر کمک کرد :)

واقعا دیگه موندم
ببینید index.php من که چک باکس ها داخلشن
و mohasebat.php من هم محاسبات روی چک باکس های ایندکس رو انجام میده و پیام های مختلفی نسبت به تعداد چک باکسهای ایندکس به خود ایندکس برمیگردونه

مثلا 3تا چکباکس توی ایندکس دارم که mohasebat.php کنترل میکنه اگه کاربر کمتر از 3 تارو چک زده باشه پیام میده "کمتر از 3تا" ...(اینجا نمیخوام آنچک شن)
و اگه هر3تا چک شده باشن mohasebat.php پیام "اوکی" رو به ایندکس میفرسته و نشون داده میشه (اینجا میخوام چکباکس ها آنچک شن یعنی بعد از پیام "اوکی" که توی mohasebat.php هست)
حالا اومدم کد <script> ResetCheckBox() </script> رو توی اینباکس گذاشتم جواب داد
اما بعد از پیام "اوکی" که در فایل mohasebat.php به صورت زیر گذاشتم "اوکی" رو نشون میده اما آنچک نمکینه


echo "اوکی ";

echo "<script> ResetCheckBox() </script> ";


در حالی که اگه به صورت زیر باشه بعد از زدن دکمه " go" آنچک میشه...کد زیر:



echo "اوکی ";

echo "<input type="button" value="go" onclick="return resetcheckbox();" /> ";

siavashsay
پنج شنبه 21 دی 1391, 00:25 صبح
نمیدونم اینی که میگم عاقلانس یا نه اما بجای 2 تا echo از یک echo استفاده کن و اوکی یا همون پیغامت رو هم قبل script بذار بعد اسکریپت رو echo کن :

echo "ok , <script> .... </script>";

abbaszz
پنج شنبه 21 دی 1391, 00:30 صبح
نمیدونم اینی که میگم عاقلانس یا نه اما بجای 2 تا echo از یک echo استفاده کن و اوکی یا همون پیغامت رو هم قبل script بذار بعد اسکریپت رو echo کن :

echo "ok , <script> .... </script>";

نه اینو قبلا تست کردم نشد
اصن داستانی شده بخدا. بنظرم یه بلایی باید سر اون input اورد که بدون کلیک کارشو بکنه
بازم مرسی. شب خوش