PDA

View Full Version : سوال: غیرفعال کردن و فعال کردن دکمه سابیت در بین دستورات پی چ پی



h.alizadeh
چهارشنبه 05 آبان 1389, 21:22 عصر
سلام،

می خواهم در بین دستورات php دکمه ی submitفرم را غیرفعال/فعال کنم آیا امکان پذیر است؟

چطوری؟

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

حالا اگر برفرض بر روی رویدادonclickدستورات غیرفعال شدن دکمه رو بنویسم بعد از انجام شدن عملیات چطوری دوباره فعال کنم دکمه ی سابیت رو؟

چه روشی رو پیشنهاد می کنید؟

funpatogh
چهارشنبه 05 آبان 1389, 21:40 عصر
اول دکمه وجود داره و وقتی سند میشه میخواهید غیب بشه و بعد از اتمام دوباره ظاهر بشود؟

h.alizadeh
چهارشنبه 05 آبان 1389, 22:20 عصر
اول دکمه وجود داره و وقتی سند میشه میخواهید غیب بشه و بعد از اتمام دوباره ظاهر بشود؟

بله.

من اومدم یک کار کردم

<script language="javascript">
function makedisable() {
if(document.getElementById('chletters').checked || document.getElementById('chdatabase').checked)
document.getElementById("startbackup").disabled = true;
return true;
}
</script>


بعد توی تگ فرم هم:
onSubmit=" return makedisable()"

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

binyaft
چهارشنبه 05 آبان 1389, 22:27 عصر
اگر با آژاکس بنویسی بعد از لود اطلاعات میتونی دکمه رو فعال کنی

h.alizadeh
چهارشنبه 05 آبان 1389, 22:43 عصر
نه هم روی خاصیت ان کلیک هم باعث میشه کدهای سمت سرور که برای این سابیت نوشتم اونوقت اجرا نشه فقط کدهای جاواسکریپت فراخوانی میشه.

h.alizadeh
چهارشنبه 05 آبان 1389, 22:44 عصر
چطوری؟
من زیاد بلد نیستمم آجاکس

binyaft
پنج شنبه 06 آبان 1389, 13:19 عصر
در آژاکس زمانی که یک صفحه لود میشود مقداری نیز برگردانده میشود که مشخص میکند عملیات لود چگونه انجام شده است

برای مثال در jQuery

$().load('file.php',{name:'12'},alert('load'));
پس از پایان کار پیام load به کاربر داده میشه ، شما میتونید با این قابلیت دکمه خود را در صفحه فعال کنید

موفق باشید

funpatogh
پنج شنبه 06 آبان 1389, 22:50 عصر
اینم فایلی که شما به من تحویل دادید به صورت ادیت شده و تست شده که میتونید استفاده کنید


<?php
include("lib/db.php");
$letters=""; $db="";
if(isset($_POST['chletters']))
$letters="checked";
if(isset($_POST['chdatabase']))
$db="checked";
if($_POST['startbackup']){
if(isset($_POST['chdatabase']))
{
backup_tables("localhost","root","","dabirkhane");
}
if(isset($_POST['chletters'])) {
copy_directory("D:\homa\books\aspnet","a");
}
unset($_POST);
echo "<script language=\"javascript\">yes()</script>";
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>پشتیبان گیری</title>
</head>
<body dir="rtl">
<script language="javascript">

function ShowID(id)
{
if( document.getElementById(id) )
{
document.getElementById(id).style.display = '';
}
}

function HideID(id)
{
if( document.getElementById(id) )
{
document.getElementById(id).style.display = 'none';
}
}
function no()
{
HideID('startbackup');
}

function yes()
{
ShowID('startbackup');
}
</script>
</script>
<form action="" method="post" name="formBackup" onSubmit="no()" >
<table border="1" width="100%">
<tr><td>&nbsp;<input type="checkbox" id="chletters" name="chletters" <?php echo $letters; ?> />نامه ها</td></tr>
<tr><td>&nbsp;<input type="checkbox" id="chdatabase" name="chdatabase" <?php echo $db; ?>/>دیتابیس</td></tr>
<tr> <td>&nbsp;<input type="submit" name="startbackup" id="startbackup" value=" شروع " /></td></tr>
<tr><td>&nbsp;</td></tr></table>
</form>
</body></html>
در لحظه اول دکمه وجود داره اما به محض کلیک عمل Back up انجام میشه و دکمه submit هیدن میشود و به محض اینکه back up گیری تمام میشود دکمه ظاهر میشود

h.alizadeh
جمعه 07 آبان 1389, 15:36 عصر
ممنونم واقعاً آقای funpatogh :لبخندساده:

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

بازم ممنونم.:لبخندساده:

funpatogh
شنبه 08 آبان 1389, 20:31 عصر
اون error رو که گفتید چون من با فایر فاکس کار میکنم متوجه نشدم اما خوب فعلا که نتوانستم اون خطا رو حل کنم توی IE چون مشکلی ندیدم توش اما به هر حال کار رو درست انجام میدهد