PDA

View Full Version : جک کردن فرم با آجاکس



HOSSEINONLINE7
شنبه 11 شهریور 1391, 20:19 عصر
سلام من برای فرم های مختلف پروژم میخوام بصورت آجاکس کارهای مختلف مثل اعتبار سنجی و ... را انجام بدم ولی آجاکس بلد نیستم لطفا یک توضیح و یک نمونه کد برای من بزارید تا من متوجه بشم و در پروژم استفاده کنم ...

در ضمن فقط اعتبار سنجی و کدنویسی آجاکسی را بلد نیستم و میدونم که آجاکس چی هست و با مبانی و کدنویسی ابتدایی کمی آشنا هستم .

تشکر

ابوذر محمودی
شنبه 11 شهریور 1391, 21:26 عصر
کاری نداره که ، شما مقادیرتو با اجکس پاس میدی به یه صفحه دیگه ، اونجا تست می کنی و نتیجشو تو همون صفحه چاپ میکنی و اجکس خروجی اون فایلو واستون هر جا که خواستین نمایش میده .
البته بهتره اون مقادیری که به بانک ربطی نداره ، مثلا طول نام کاربری یا درست بودن ایمیل و ... رو با جاوا اسکریپت تست کنین که سرعت کار بالا میره و نیاز به سند و ریسیو هم نداره.
و مقادیری که به نحوی با بانک ربط داره و بحث امنیت پیش میاد رو ، مثل وجود یک کاربر و صحت رمز عبورو میتونین با اجکس کار کنین.
تو این کد من طول فیلد رو با جاوا اسکریپت ، و محتوی اون رو با اجکس اعتبار سنجی کردم.
اگه طول کمتر از سه کاراکتر باشه اطلاعات ارسال نمیشه (جاوا اسکریپت)
اگه نام مخالف reza یا ali باشه پیغام خطا چاپ میکنه وگرنه پیغام اکی میده.(اجکس)
نکته : شما برای ایجاد شی XMLHttp مرورگر IE رو هم در نظر بگیرین و دو سه خط کد اضافه کنین واسش من واسه راحتی خودم دیگه اونارو ننوشتم فرض کردم مرورگرتون غیر IE هست.



<head>
<script type="text/javascript" >
var x;
function f()
{
if(x.readyState==4 && x.status==200)
{
document.getElementById("print").innerHTML=x.responseText;
}
}
function validate()
{
var m=document.getElementById("txtname").value;

if(m.length <3)
{
document.getElementById("print").innerHTML="3 character require";
return false;
}
else
{
document.getElementById("print").innerHTML="";
return true;
}
}
function test()
{
if(validate())
{
x=new XMLHttpRequest();
var m=document.getElementById("txtname").value;
var url="a.php?name=" + m ;
x.open("get",url,true);
x.onreadystatechange=f;
x.send();
}
}

</script>
</head>
<body>
<p>
<label for="txtname">name :</label>
<input type="text" name="txtname" id="txtname" onKeyUp="validate()">
<input type="submit" name="validate" id="validate" value="Submit" onClick="test()">
</p>
<span id="print" > </span>
</body>

و اطلاعات صفحه دوم


<?php
$n=$_GET["name"];
switch($n)
{
case "ali":
echo " OK";
break;

case "reza":
echo " OK";
break;

default:
echo " Error!!!";
break;
}
?>

id1385
شنبه 11 شهریور 1391, 21:44 عصر
با تشکر از دوست عزیزمون، اگه شما فقط بخوای چک بکنی و کار دیگه مثل پست اطلاعات و اینا رو نمیخوای انجام بدی بهتره از JS استفاده کنی چون کار باهاش راحت تره و هم سریعتر، البته با اجازه ی دوستمون من خودم jquery رو بیشتر می پسندم.
یک فایل اعتبار سنجی رو برات اتچ کردم امیدوارم بدردت بخوره.

ابوذر محمودی
یک شنبه 12 شهریور 1391, 09:22 صبح
البته با اجازه ی دوستمون من خودم jquery رو بیشتر می پسندم.
اختیار دارین دوست عزیز ،من بخاطر سادگی کار جاوا اسکریپتو گفتم ، صد البته که بنده هم JQuery رو بیشتر میپسندم . :لبخند:

HOSSEINONLINE7
یک شنبه 12 شهریور 1391, 18:10 عصر
از همه ی دوستان تشکر :قلب:
فقط یک نکته که این مقدار readyState==4 چیست ؟ یعنی میدونم ولی از قبل هست مثلا 404 یعنی اگر خطا بده و ... ولی یادم رفته اگرمقادیرش را توضیح بدید ممنون میشم ...
در ضمن یک جا خوندم میشه بجای xml http request از تابع آجاکس استفاده کنیم یعنی ajax.status و ... میخواستم بدونم اینم درسته؟

و سوال آخر : من میخوام مثلا با آجاکس بعضی صفات css اشیا فرم را مقدارش را عوض کنم مثلا وقتی کاربر مقداری را اشتباه وارد کردد اشیا فرم یکم توی صفحه بیان پایین تر و جای اونا یک ارور نمایش بدم چطور میشه همچین کاری کرد ؟