آگهی
article

اعتبار سنجی همزمان فرم با آژاکس (Ajax) و PHP

ajax-php-validation

استفاده از آژاکس (ajax) به جهت قابلیت منحصر به فرد آن، یعنی عدم نیاز به بارگذاری مجدد صفحه و رفرش شدن کامل، می تواند در بسیاری از مواقع و بنا بر نیاز برنامه نویس، کاربردی و رهگشا باشد، یکی از این موارد کاربردی، اعتبار سنجی فرم های وب با آژاکس است؛ همان طور که می دانیم اعتبار سنجی به فرآیند بررسی معتبر بودن داده های ارائه شده توسط کاربر گفته می شود که در مجموع در دو حالت سمت کاربر (در مرورگر و با جاوا اسکریپت) یا سمت سرور (با php یا دیگر زبان های سمت سرور مانند asp) انجام می شود، اما استفاده از آژاکس قابلیت دیگری نیز در اختیارمان قرار می دهد و آن بررسی همزمان فرم ها در سمت کاربر و سرور، بدون رفرش یا بارگذاری مجدد صفحه است.

کد آژاکس برای ارسال اطلاعات فرم


قبل از هر چیز باید موتور پایه ی کارمان را برنامه نویسی کنیم، در اینجا کد ما مبتنی بر آژاکس (ajax) و XMLHttpRequest (برای تمام مرورگرها به جزء نسخه های قدیمی اینترنت اکسپلورر) یا ActiveXObject (برای اینترنت اکسپلورر نسخه 7 و ماقبل) خواهد بود، در مجموع ما به کدی نیاز داریم که اطلاعات فیلدهای فرم را دریافت کرده، به سرور ارسال کند و تا هنگام دریافت پاسخ سرور، یک پیام یا تصویر مبنی بر درحال پردازش بودن درخواست نشان و در نهایت نیز پاسخ سرور را در یک بلاک div خروجی دهد؛ از این رو از کد زیر استفاده می کنیم.
<script type="text/javascript">
//<![CDATA[
function AjaxRequest(inputname,divid,inputvalue){
var formvalue = inputname+"="+inputvalue.value;    
var loadingmessage = '<img src="loading.gif" alt="loading" height="16" width="16" />';    
var xmlhttp;
if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else{
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState<4){
                document.getElementById(divid).innerHTML=loadingmessage;
                }            
                else if (xmlhttp.readyState==4 && xmlhttp.status==200){
                    document.getElementById(divid).innerHTML=xmlhttp.responseText;
                }
        }
        xmlhttp.open("POST","validate.php",true);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.send(formvalue);
}
//]]>
</script>
توضیح:
- تابع اصلی کد، AjaxRequest نام دارد که یک عنوان دلخواه و فرضی است، این تابع از سه آرگومان استفاده می کند که به ترتیب، نام فیلد مورد نظر، آی دی فیلد و مقادیر آن را در خود نگهداری می کنند.
- در متغیر formvalue، مقادیر را برای ارسال از طریق xmlhttp.send آماده می کنیم، به طور مثال اگر inputname برابر usertext باشد و inputvalue برابر 1، مقادیر متغیر formvalue به صورت usertext=1 خواهد بود، به این صورت در سمت سرور می توان به صورت زیر اطلاعات را دریافت کرد.
<?php
$usertext = $_POST['usertext'];
?>
- متغیر loadingmessage برای نمایش یک تصویر، در حالتی که xmlhttp.readyState<4 است استفاده می شود.
- اطلاعات فیلدهای فرم با متد POST به فایل validate.php ارسال می شوند.
- در نهایت نیز پاسخ سرور با innerHTML و responseText در بلاک div خروجی داده می شود.

نحوه استفاده و فراخوانی تابع آژاکسی


برای اینکه موتور آژاکسی ما به کار بیفتد، لازم است که با استفاده از رویدادهای جاوا اسکریپت نظیر onkeyup یا onchange این کار را انجام دهیم، در نمونه زیر از onchange استفاده کرده ایم.
<form action="validate.php" method="post">
اعتبار سنجی عدد بودن مقادیر:<br /><br />
<input type="text" name="usertext" id="usertext" onchange="AjaxRequest('usertext','showresult-1',this);" />
<div class="inline" id="showresult-1"></div><br />
اعتبار سنجی معتبر بودن ایمیل:<br /><br />
<input type="text" name="usermail" id="usermail" onchange="AjaxRequest('usermail','showresult-2',this);" />
<div class="inline" id="showresult-2"></div><br />
اعتبار سنجی معتبر بودن آدرس سایت:<br /><br />
<input type="text" name="usersite" id="usersite" onchange="AjaxRequest('usersite','showresult-3',this);" />
<div class="inline" id="showresult-3"></div><br />
</form>
توضیح:
- اگر دقت کرده باشید، برای هر فیلد، تابع AjaxRequest را با سه آرگومان فراخوانی کرده ایم، آرگومان اول نام فیلد، آرگومان دوم آی دی بلاک div و آرگومان سوم مقادیر فرم را برمی گرداند؛ به این صورت مواد اولیه به تابع داده شده و تابع درخواست را به سرور ارسال می کند، در نهایت پاسخ سرور در آن بلاک div خروجی داده می شود.
- همان طور که گفتیم، در این مثال از رویداد onchange استفاده کرده ایم که بنا به نیاز خود می توانید از سایر رویدادها مانند onkeyup، onblur، onfocus و... نیز استفاده کنید.

کد php برای پردازش اطلاعات ارسالی


با توجه به هدف شما از اعتبار سنجی، برنامه نویسی شما نیز در سمت سرور متفاوت خواهد بود، برای نمونه در مثال زیر، سه فیلد را از لحاظ اینکه مقادیر ارسال شده یک عدد، یک آدرس ایمیل معتبر و یا آدرس یک وبسایت یا وبلاگ باشد، بررسی می کنیم.
<?php
@$usertext = $_POST['usertext'];
@$usermail = $_POST['usermail'];
@$usersite = $_POST['usersite'];

if(isset($usertext) && is_numeric($usertext)){
    echo "<div class=\"result-true\">عبارت وارد شده یک عدد است!</div>";
}
elseif(isset($usertext) && !is_numeric($usertext)){
    echo "<div class=\"result-false\">عبارت وارد شده یک عدد نیست!</div>";    
}

if(isset($usermail) && preg_match("|^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$|i", $usermail) > 0){
    echo "<div class=\"result-true\">ایمیل وارد شده معتبر است!</div>";
}
elseif(isset($usermail) && preg_match("|^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$|i", $usermail) == 0){
    echo "<div class=\"result-false\">ایمیل وارد شده معتبر نیست!</div>";    
}

if(isset($usersite) && preg_match("|^\S+\.\S+.+$|", $usersite) > 0){
    echo "<div class=\"result-true\">آدرس سایت وارد شده معتبر است!</div>";
}
elseif(isset($usersite) && preg_match("|^\S+\.\S+.+$|", $usersite) == 0){
    echo "<div class=\"result-false\">آدرس سایت وارد شده معتبر نیست!</div>";    
}
?>
توضیح:
- متغیر usertext به لحاظ اینکه یک مقدار عددی باشد یا خیر، بررسی می شود، در این بررسی از تابع is_numeric در php استفاده کرده ایم.
- متغیر usermail به لحاظ اینکه یک آدرس ایمیل معتبر باشد، بررسی می شود، در اینجا از تابع preg_match و یک الگو بر اساس عبارات باقاعده یا Regular Expression استفاده کرده ایم.
- متغیر usersite نیز به لحاظ پیروی کردن از الگوی صحیح یک آدرس وب بررسی می شود، در اینجا نیز از تابع preg_match و یک الگو بر اساس عبارات باقاعده یا Regular Expression استفاده کرده ایم.
نکته 1: تابع preg_match با توجه به الگو، رشته ارسالی را بررسی می کند، اگر مقادیر ارسال شده برابر با الگو باشد، مقادیر 1 و در غیر این صورت مقادیر صفر را برمی گرداند.
نکته 2: علامت @ در ابتدای متغیرها برای جلوگیری از نمایش خطاها و نادیده گرفته شدن آنها در php است.

کد و پیش نمایش آنلاین


در زیر کد نهایی و پیش نمایش آنلاین اعتبار سنجی با آژاکس (ajax) و php را ملاحظه می کنید.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | اعتبار سنجی فرم های وب با آژاکس</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
.inline{
    display:inline-block;
}
.result-true{
    color:#090;
}
.result-false{
    color:#C00;
}
</style>
<script type="text/javascript">
//<![CDATA[
function AjaxRequest(inputname,divid,inputvalue){
var formvalue = inputname+"="+inputvalue.value;    
var loadingmessage = '<img src="loading.gif" alt="loading" height="16" width="16" />';    
var xmlhttp;
if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
    else{
        // code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState<4){
                document.getElementById(divid).innerHTML=loadingmessage;
                }            
                else if (xmlhttp.readyState==4 && xmlhttp.status==200){
                    document.getElementById(divid).innerHTML=xmlhttp.responseText;
                }
        }
        xmlhttp.open("POST","validate.php",true);
        xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xmlhttp.send(formvalue);
}
//]]>
</script>
</head>
<body>
<noscript>
جاوا اسکریپت در مرورگر شما غیرفعال است یا پشتیبانی نمی شود!<br />
</noscript>

<form action="validate.php" method="post">
اعتبار سنجی عدد بودن مقادیر:<br /><br />
<input type="text" name="usertext" id="usertext" onchange="AjaxRequest('usertext','showresult-1',this);" />
<div class="inline" id="showresult-1"></div><br />
اعتبار سنجی معتبر بودن ایمیل:<br /><br />
<input type="text" name="usermail" id="usermail" onchange="AjaxRequest('usermail','showresult-2',this);" />
<div class="inline" id="showresult-2"></div><br />
اعتبار سنجی معتبر بودن آدرس سایت:<br /><br />
<input type="text" name="usersite" id="usersite" onchange="AjaxRequest('usersite','showresult-3',this);" />
<div class="inline" id="showresult-3"></div><br />
</form>
<hr />
پس از تایپ یک عبارت در هر فیلد، در فیلد بعدی کلیک کنید تا رویداد onchange اجرا شود.
</body>
</html>
پیش نمایش
sectionدسته بندی: آموزش کاربردی » Ajax
related مطالب بیشتر:
» لیست داینامیک پیشنهاد کلمات، مبتنی بر ای جکس، PHP و MySQL
» نمایش زنده آمار و اطلاعات با ای جکس (Ajax)
» ساخت قابلیت امتیازدهی با PHP و Ajax
» ارسال اطلاعات فرم با ای جکس (Ajax) و نمایش پیام در حال پردازش
» نمایش نتایج پایگاه داده MySQL با PHP و ای جکس (Ajax)
commentنظرات (۳۴ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: nekoee
زمان: ۱۳:۴۳:۱۵ - تاریخ: ۱۳۹۲/۰۴/۰۴
سلام
کاش میشد این مطالب رو برای وبلاگ نویس ها هم آموزش بدین
ما که سرور php نداریم
من فرم html رو طراحی کردم
php رم طراحی کردم
ولی نمیدونم الان تو اکشن html آدرس php اعتبار سنجی رو چطور وارد کنم؟
php رو آپلود کردم و ادرسش رو گذاشتم تو اکشن html ولی نمیشه کار نمیکنه :(
پاسخ: 
سلام
همان طور که اشاره کردید، برای اجرای فایل های PHP نیاز به یک سرور است، نمی توانید فایل های سمت سرور که به زبان PHP، ASP و... هستند را در سرویس های معمولی اجرا کنید! به عبارت دیگر سرویس های وبلاگی این امکان را ندارند که کدهای PHP را پشتیبانی کنند، یا باید هاست خریداری کنید یا از سرویس های رایگان با قابلیت پشتیبانی PHP استفاده کنید.
نویسنده: یحیی
زمان: ۱۴:۰۲:۴۶ - تاریخ: ۱۳۹۲/۰۴/۰۹
با عرض سلام و خسته نباشید.
میخواستم بدونم آیا میشه به همراه بازخورد از طرف پی اچ پی،
border-color
مربوط به فیلد هم تغییر کنه. مثلا اگه پیغام خطا داشته باشه رنگ کادر فیلد قرمز و اگه درست باشه رنگ کادر فیلد سبز بشه.
پاسخ: 
سلام
بله، این کار با دستورات جاوا اسکریپتی امکان پذیر است، به طور مثال:
var element_id = 'input_id';
document.getElementById(element_id).style.borderColor = '#FF0000';
می توانید در سمت کاربر پاسخ سرور را به یک آرایه تجزیه کنید ، یا به فرض به صورت عدد 0 و 1 نتیجه را برگردانید و با دستورات شرطی آن را تحلیل کرده و متناسب با نتیجه، رفتاری منطقی برای کدهای خود تعریف کنید.
نویسنده: یحیی
زمان: ۱۷:۳۲:۱۹ - تاریخ: ۱۳۹۲/۰۴/۰۹
با تشکر از پاسخ سریعتون
کد جاوا اسکریپت مربوطه رو کاملا متوجهم اما کجا باید پاسخ سرور رو تجزیه تحلیل کنم و کد جاوا رو کجا به کار ببرم. مثلا من میخوام در صورت داشتن خطا یه پیام خطا ارائه بشه و با صحیح بودن، رنگ فیلد سبز بشه.
دقیقتر بگم. میخواهم برای ارسال فرم از یه رویداد onclick استفاده کرده و با جاوا رنگ فیلدها رو چک کنم که اگه رنگ همه فیلدها مثلا سبز نباشه از ارسال فرم جلوگیری بشه.
ممکن هست یا نه ؟
درضمن "معرکه و محشرید" متشکر
پاسخ: 
به نظر شما اعتبار سنجی سمت سرور و سمت کاربر را با هم اشتباه گرفته اید! هنگامی که از شیوه مبتنی بر آژاکس (Ajax) استفاده می کنیم، یعنی اعتبار سنجی در سرور (کدهای PHP) انجام و پاسخ به مرورگر ارسال می شود، این پاسخ در قسمت
xmlhttp.responseText
قرار دارد که متناسب با هدف ما می تواند هر چیزی باشد، به فرض اعدادی از 0 تا 3، سپس در تابع آژاکسی می توان این مقدار را به فرض به یک متغیر نسب داد و متغیر را در یک شرط if و else یا switch و case سنجید، به طور مثال:
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
var element_id = 'input_id';
var response = xmlhttp.responseText;
switch(response){
case '0':
document.getElementById(element_id).style.borderColor = '#FF0000';
break;
case '1':
//
break;
case '2':
//
break;

}
}
در واقع اعتبار سنجی اصلی در سرور انجام می شود، به هر صورت به نظر منظور شما اعتبارسنجی سمت کاربر توسط جاوا اسکریپت است که در این صورت آموزش جداگانه ای برای آن در سایت وجود دارد، عبارت "اعتبار سنجی" را در قسمت جستجو وارد کنید.
نویسنده: سیدوحیدحسینی
زمان: ۰۸:۰۲:۲۶ - تاریخ: ۱۳۹۲/۰۵/۲۷
سلام من می خوام در فرم ثبت نام فیلد پسورد از لحاظ سختی کلمه عبور بسنجم تقریبا چیزی شبیه سی پنل که وقتی رمز رو عوض می کنی درجه سختی رمز عبور رو نشون میده لطفا این اموزش رو بزارید.
پاسخ: 
سلام
این گونه موارد نیازمند نوشتن الگوریتم ها و توابعی (با PHP یا JavaScript) است تا تمام موارد را به صورت هوشمندانه سنجش کند، هر چند انتشار این آموزش در کوتاه مدت میسر نیست، اما ممکن است در آینده آموزشی در این رابطه منتشر کنیم.
نویسنده: محمد مهدی
زمان: ۱۱:۱۶:۲۲ - تاریخ: ۱۳۹۲/۰۵/۲۹
فوق العاده عالی البته این برنامه رو من با جی کوئری انجام دادم و فوق العاده کاربردی هست
اعتبارسنجی به تنهایی با ایجکس یا php معایبی داره که این مشکل با اعتبارسنجی همزمان حل شده
بسیار عالی
ممنون از محبتتون
نویسنده: Amir
زمان: ۱۱:۵۶:۵۵ - تاریخ: ۱۳۹۲/۰۶/۱۴
سلام و خسته نباشید به شما...
در مرحله اول از سایت خوبتون کمال قدردانی رو دارم...
چطوری میشه از ثبت اطلاعات تکراری در mysql با php و ajax جلوگیری کرد...
یعنی یه فرم ثبت نام داریم ، بررسی کنه که اگه نام کاربری در بانک تکراری بود اون رو ثبت نکنه و با یه پیغام مناسب اخطار بده...
باز هم ممنون...
پاسخ: 
سلام
سوالتان کلی است و به ناچار جواب هم کلی:
باید قبل از ذخیره اطلاعات، یک پرس و جوی فرضی بنویسید که به طور مثال ردیف های مشابه با مقادیر ارسالی را فراخوانی کند، اگر نتایج حاصل از پرس وجو بزرگتر از صفر بود، پس چنین موردی از قبل در دیتابیس وجود داشته، می توانید یک پیام به صورت مستقیم ارسال کنید یا اینکه به فرض یک عدد در پاسخ درخواست آژاکسی ارسال کنید و در سمت کاربر آن عدد را تجزیه و تحلیل کرده، متناسب با آن پیامی نمایش دهید.
نویسنده: aboolfazl
زمان: ۰۱:۳۲:۴۳ - تاریخ: ۱۳۹۲/۰۶/۲۴
سلام ممنون از سایت بسیار عالیتون...
من یه سیستم مدیریت محتوا دارم که یک پلاگین عضویت داره توی این پلاگین یه مشکل اساسی هستش اونم اینه که ایمیل چه صحیح باشه و چه اشتباه در بانک اطلاعاتی ذخیره می شود این قسمتی از کد هستش:
<?php
//If User Is Not Logged In
if(!isset($_SESSION['LoggedIn']))
{
if(isset($_POST['register-form']))
{
//If Register Form Was Submitted
if($_POST['username'] != '' && $_POST['password'] != '' && $_POST['email'] != '')
{

$addUser = $Feul->processAddUserAdmin($_POST['username'], $_POST['password'], $_POST['email'], $_POST['website'], $_POST['mobile']);
if($addUser == true)
{
echo '<div class="success">Your account was successfully created</div>';
$Feul->checkLogin(true, $_POST['username'], $_POST['password']);
//Send Email
$to = $_POST['email'];
$Username = $_POST['username'];
$chosen_password = $_POST['password'];

// subject
$subject = 'Your New Account ('.$Username.') Is Setup!';

// message
$message = '
<html>
<head>
<title>Your New Account Is Setup!</title>
</head>
<body>
<h2><strong>Below is your login information:</strong></h2><br/><br/>
<strong>Username: </strong>'.$Username.'<br/>
<strong>Password: </strong>'.$chosen_password.'<br/>
<br/>
<a href="'.$SITEURL.'">Click Here To Visit Website</a>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "";

// Additional headers
//$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "";
$headers .= 'From: New Account <'.$Feul->getData('email').'>' . "";
//$headers .= 'Cc: birthdayarchive@example.com' . "";
//$headers .= 'Bcc: birthdaycheck@example.com' . "";

// Mail it
$success = mail($to, $subject, $message, $headers);
if(!$success)
{
$error = '<div class="error">Unable to send welcome email.</div>';
}
}
else
{
$error = '<div class="error">User Already Exists</div>';
}
}
else
{
$error = '<div class="error">Please fill in the required fields</div>';
}
}

echo $Feul->getData('registerbox');
}
?>
ممنون میشم راهنمایی کنید چطوری می تونم اعتبارسنجی کنم که آیا ایمیل وارد شده صحیح هست یا نه اگر صحیح نبود یک پیام خطا نمایش داده بشود و اگر صحیح بود ذخیره اطلاعات در بانک انجام بشه
پاسخ: 
سلام
می توانید مطابق الگوی استفاده شده در مطلب، پارامتر دیگری به دستورات شرطی خود اضافه کنید، به فرض:
$email_check = preg_match("|^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$|i", $_POST['email']);
//If Register Form Was Submitted
if($_POST['username'] != '' && $_POST['password'] != '' && $_POST['email'] != '' && $email_check > 0)
و برای نمایش پیغام خطا در صورت معتبر نبودن، قسمت else مربوط به Please fill in the required fields را به صورت زیر ویرایش کنید:
			else
{
if($email_check == 0){
$error = '<div class="error">email is not valid!</div>';
}
else{
$error = '<div class="error">Please fill in the required fields</div>';
}
}
نویسنده: مجید
زمان: ۱۷:۱۳:۲۸ - تاریخ: ۱۳۹۲/۰۸/۰۷
می خواستم بدونم اعتبار سنجی فرم ها با جاوا اسکریپت صورت بگیره بهتره یا با php
پاسخ: 
ترکیبی از این دو روش توصیه می شود:
- اعبتار سنجی با جاوا اسکریپت، رابط کاربری بهتری ایجاد می کند.
- اعتبار سنجی سمت سرور، اطمینان بیشتر.
نویسنده: مرتضی
زمان: ۰۵:۵۵:۴۵ - تاریخ: ۱۳۹۲/۱۰/۲۵
سلام و خسته نباشد
من طبق کد های شما یه اعتبار سنجی تو در تو با کلی if نوشتم البته نهایتا یک echo داره ولی چون فیلد های مختلف بررسی میشه تعداد زیاد هست echo ها زیاد هست الان مشکل اینکه وقتی اعتبار سنجی 1 کد رو میسنجه نتیجه رو برای تمام فیلد ها نمایش میده مثلا برای فیلد نام نتیجه اعتبار سنجی درست بود.
در فیلد بعدی که مثلا پسورد هست هم نتیجه همون اعتبار سنجی نام رو به صورت FALSE یا نادرست به همراه اعتبار سنجی فیلد پسورد نمایش میده و این همینجور ادامه داره تا آخرین فیلد. که یعنی آخرین فیلد کلی جواب نادرست داره به همراه جواب خودش
میشه بپرسم مشکل کارم کجاست ؟
پاسخ: 
سلام
هر چند این نوع سوالات باید با ارائه نمونه کد مطرح شوند، اما به نظر مشکل شما از استفاده از if های پشت سر هم به جای استفاده از if و elseif است، باید از if در کنار elseif استفاده کنید تا با نادرست شدن یک حالت، بقیه موارد بررسی نشوند.
نویسنده: مرتضی
زمان: ۱۰:۰۷:۰۶ - تاریخ: ۱۳۹۲/۱۰/۲۷
بله من از if در کنار elseif استفاده کردم و برای هر کدوم از فیلد ها که تو فرم ثبت نامم هست یه خروجی می گیریم ... من کدها رو براتون از طریق فرم تماس با ما ارسال کردم
منتظر بررسیتون هستم
ممنون
پاسخ: 
لینک دانلود شما نیاز به پسورد دارد! ضمن اینکه امکان دانلود و بررسی فایل بیش از 1 مگابایت وجود ندارد.
نویسنده: مصطفی
زمان: ۰۱:۲۵:۳۹ - تاریخ: ۱۳۹۲/۱۱/۰۸
سلام می خواستم بدونم درخواست آژاکس حتما باید از صفحه ای با فرمت php فرستاده بشه یا امکانش هست از صفحات html هم درخواست رو فرستاد چون من از طریق صفحات php به راحتی درخواست رو می فرستم اما از صفحات html درخواست ارسال نمیشه و جوابی نمیاد
پاسخ: 
سلام
درخواست/پاسخ آژاکس هم می تواند از صفحه با فرمت php باشد و هم html، البته کدهای صفحه باید در یک سرور یا لوکال هاست اجرا شوند (در دایرکتوری سرور باشند) و به فرض با اجرای مستقیم فایل در مرورگر (به طور مثال از روی دسکتاپ) ممکن است دچار مشکل شوید.
نویسنده: مصطفی
زمان: ۱۷:۱۳:۵۸ - تاریخ: ۱۳۹۲/۱۱/۰۸
دستتون درد نکنه مشکلم حل شد دقیقا همونی که شما گفتی من صفحه اچ تی ام ال رو از روی دسکتاپ اجرا می کردم نه از روی سرور ممنون
نویسنده: ابوالفضل
زمان: ۱۶:۰۴:۴۲ - تاریخ: ۱۳۹۲/۱۱/۲۳
سلام خسته نباشید من الان دارم از این کد استفاده می کنم در سایتم اما حال می خوام یه تغییری درونش انجام بدم:
میخوام اگر همه اعتبار سنجی ها درست بود دکمه ارسال باشد اما اگر مقداری درست نبود این دکمه وجود نداشته باشد و کاربر مجبور باشد حتما قبل از ارسال فرم اون قسمت را درست وارد کند البته در سمت سرور هم قبل از ذخیره اطلاعات اعتبار سنجی رو انجام میدم اما می خوام اینجوری بیخودی کاربر رو به صفحه دیگه ای واسه نمایش خطا ارسال نکنم
پاسخ: 
سلام
لطفا آموزش مربوط به مبحث متد innerHTML و document.getElementById را مطالعه کنید، می توانید برای تگ یک کلاس CSS تعریف کنید و در حالت پیش فرض، خاصیت display را با none مقدار دهید، سپس با تغییر style تگ مورد نظر در توابع جاوا اسکریپت به هدفتان برسید (قاعدتا باید تا حدودی با جاوا اسکریپت آشنا باشید).
نویسنده: عسل
زمان: ۰۰:۵۰:۵۸ - تاریخ: ۱۳۹۳/۰۲/۲۲
سلام چطوری میشه جاوا اسکریپ مرورگر رو فعالش کرد؟
پاسخ: 
سلام
جاوا اسکریپت به صورت پیش فرض در مرورگرها فعال است، اما اگر به هر دلیل این امکان غیر فعال شده، می توانید از قسمت تنظیمات این قابلیت را فعال کنید (در مرورگرهای مختلف، شیوه متفاوتی وجود دارد)، به طور مثال در مرورگر فایرفاکس باید عبارت
about:config
را در نوار آدرس وارد کنید و سپس بر روی دکمه I'll be careful, I promise کلیک کرده و در قسمت جستجو، عبارت javascript.enabled را وارد کنید، در نهایت نیز مقادیر true را با دابل کلیک کردن به false تغییر دهید، برای کسب اطلاعات بیشتر لطفا در وب جستجو کنید.
نویسنده: عسل
زمان: ۱۸:۵۲:۳۹ - تاریخ: ۱۳۹۳/۰۲/۲۲
مرسی از راهنماییتون این کار رو کردم اما برای explorer باید چکار کنم؟
پاسخ: 
برای فعال کردن جاوا اسکریپت در اکسپلورر، از منوی Tools گزینه Internet Option را انتخاب و از سربرگ های موجود، به قسمت Security بروید، اکنون بر روی دکمه Custom Level کلیک کرده و در بخش Scripting (تقریبا آخرین تنظیمات) دکمه رادیویی را به صورت Enable برای Active Scripting تنظیم کنید.
نکته: راه حل گفته شده ممکن است بین نسخه های مختلف کمی متفاوت باشد.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




6 × 1
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشد که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آخرین دیدگاه ها
form مجید بیگلوئی
در:
با سلام میخوام فایل پیوست بسازم برای اسکریپت وبلاگ از کد زیر استفاده میکنم تا فایل را آپلود و اطلاعات را به دیتابیس ارسال...
۱۰:۰۲:۵۸ ۱۳۹۸/۱۲/۰۶

form پیمان نقی پور
در:
سلام میخواستم بدونم فیلتر نویسی بورس هم با همین زبان جاوا انجام میشه؟ چطور میشه شرطی تعیین کرد تا نتیجه فیلتر در هنگام...
۱۸:۲۱:۳۲ ۱۳۹۸/۱۲/۰۵

form mahdi
در:
سلام استاد ، css رو تسلط کامل دارم تا حدودیش هم به لطف شما و جاوا اسکریپت هم چند روزی میشه شروع کردم به آموزش...
۱۵:۴۸:۳۳ ۱۳۹۸/۱۲/۰۵

form amin
در:
با سلام آدرس مطالب سایت وبگو بعد از ای دی پست عنوان فارسی هست ولی زمانی که به سورس کد پست نگاه میکنیم قسمت فارسی...
۱۴:۵۹:۴۴ ۱۳۹۸/۱۲/۰۵

form mahdi
در:
سلام استاد ، لینک آموزش مقدماتی جاوا اسکریپت توی منوی بالایی خرابه ، به وظیفه شهروندیم عمل کردم :)
۱۵:۰۹:۰۰ ۱۳۹۸/۱۲/۰۴

form aseman
در:
با سلام . میخوام هر وقت توی تکس باکسم عدد 1 وارد شد در خروجی تگ p معادل حروفی یک رو بهم بده. مثلا:...
۱۴:۴۵:۲۹ ۱۳۹۸/۱۲/۰۴

form mahdi
در:
سلام استاد ، گذاشتمش توی این وبلاگ رمزش هم ******* هستش ، واقعیت فهمیدم که میشه درستش کرد ولی چجوریشو نفهمیدم :) خیلی ممنون...
۱۳:۲۰:۱۴ ۱۳۹۸/۱۲/۰۴

form mahdi
در:
سلام استاد، وبلاگ ندارم، اینا رو برای یادگیری و یه هدف دیگه دارم سوال میکنم، مطالب مرتبط رو پیدا کردم راهشو، فقط قسمت ارسال نظر...
۲۰:۱۵:۰۲ ۱۳۹۸/۱۲/۰۳

form نیما
در:
سلام. من میخوام با استفاده از یک input مقدار عددی رو از کاربر دریافت کنم و بعد از ضرب در عددی خاص که خودم تعیین...
۱۸:۰۷:۰۴ ۱۳۹۸/۱۲/۰۳

form وحید
در:
سلام وقت بخیر حدود شش ماه هست با فیلتر شکن کار میکنم به اسم Lightvpn. یک روز هست این خطا رو میده و...
۱۸:۰۰:۰۶ ۱۳۹۸/۱۲/۰۳

form mahdi
در:
سلام ، استاد شرمنده یه سوال دیگه هم داشتم مثل قبلی ، مطالب مرتبط که انتهای هر پست میاد رو چطوری با جاوا اسکریپت توی...
۲۳:۴۶:۲۳ ۱۳۹۸/۱۲/۰۲

form mahdi
در:
سلام استاد عزیز ، توی لوکس بلاگ میشه چیزی مثل پست های شاخص که توی وردپرس هست با جاوا اسکریپت درست کنیم که مثلا داخل...
۲۳:۱۴:۴۰ ۱۳۹۸/۱۲/۰۲

form mahdi
در:
سلام استاد ، بخش نظرات قالب لوکس بلاگ یعنی طرح کل صفحش رو چطوری دسترسی داشته باشیم که خودمون بتونیم طراحیش کنیم ؟ منظورم اینه...
۱۸:۱۱:۳۳ ۱۳۹۸/۱۲/۰۱

form علیرضا سهیلی
در:
سلام من وقتی میخوام شارژ بزنم این کد واسم میاد معنیش یعنی چی
۱۴:۳۳:۱۴ ۱۳۹۸/۱۲/۰۱

form mahdi
در:
سلام استاد ، فهمیدم چطوریه نیازی به پاسخ نیست، چقدرم ساده بود :) مرسی
۰۹:۴۸:۴۹ ۱۳۹۸/۱۱/۳۰
آگهی