PDA

View Full Version : validation فرم با استفاده از ajax (بدون استفاده از xml و درست کردن request)



طاها حک
یک شنبه 28 فروردین 1390, 14:43 عصر
سلام می خواستم بدونم کسی می تونه validation فرم با استفاده از ajax چه طوریه؟ یه سری روش هایی وجود دارن که مثلاً یه requestدرست می کنن و اونو به یه صفحه دیگه می فرستن و براساس جواب اون نوشته های فرم تایید یا رد می شه، یا مثلاً یه روش دیگه ای هست که اونم request رو به صفحه xml می فرسته. من با این روشا کار ندارم.
می خوام یه تابع داشته باشم که وقتی هر کدوم از باکس ها نوشته شدن، بیاد اونو براساس id اون چک کنه و برای هر باکس جداگانه یه پیغام متفاوتی بده.
من تو اینترنت گشتم یه سری کدهایی پیدا کردم تو چند تا از اونا به اشکال مشابهی برخورد کردم، فیلد action فرم خالی بود و فقط دکمه submit به یه تابع لینک شده بود، تو این کدا اگه فیلدها رو درست پر می کردی، یه alert success می داد، من اومد تو فیلد action، آدرس صفحه مقصد رو دادم، ولی اتفاقی که می افته اینه که اصلاً به اون صفحه نمی ره.
مثلاً: یکی از اونا :
http://www.php-learn-it.com/tutorials/starting_with_php_and_ajax.html
ممنون می شم اگه دوستان کمک کنن. :چشمک:

hossin.esm
یک شنبه 28 فروردین 1390, 15:06 عصر
سلام
action ربطی به ارسال نداره فقط مشخص میکنه اطلاعات به چه فایلی فرستاده شود و اگر خالی باشد اطلاعات به همین فایل یا صفحه ای که در ان هستیم ارسال میشه.
و دلیل ارسال نشدن onsubmit فرم هست که در لینک بالا برابر return false هست و اطلاعات با ajax چک میشود.

طاها حک
یک شنبه 28 فروردین 1390, 15:19 عصر
سلام
action ربطی به ارسال نداره فقط مشخص میکنه اطلاعات به چه فایلی فرستاده شود و اگر خالی باشد اطلاعات به همین فایل یا صفحه ای که در ان هستیم ارسال میشه.
و دلیل ارسال نشدن onsubmit فرم هست که در لینک بالا برابر return false هست و اطلاعات با ajax چک میشود.
من کدای اون مثالی رو که گذاشته بودم، عوض کردم، حتی یه شرط گذاشتم که event oncomplete وقتی مقداری از صفحه مقصد برگشت، falseبرگردونه و اگه چیزی برنگشت یعنی فیلدا درست باشن، true برگردونه که در این حالت مقدار بازگشتی به onsubmit ، برابر true می شه پس اطلاعات باید به صفحه ای که تو action نوشته شده ارسال بشه.

hossin.esm
یک شنبه 28 فروردین 1390, 15:27 عصر
اگر امکان داره کدتون را بگذارید

طاها حک
یک شنبه 28 فروردین 1390, 15:56 عصر
اگر امکان داره کدتون را بگذارید
چشم الان کدا رو می ذارم، فقط این نمونه ای که من خودم گفتم زیاد جالب نیست، چون همه فیلد ها رو اخر سر چک می کنه، در حالیکه من دوست دارم همون لحظه که یه فیلد نوشته شد هم بشه چک کرد، مثلاً تو باکسی که قراره شماره نوشته بشه، وقتی کسی حرف نوشته و خواست بره بعدی، فوراً همونجا کنار باکس پیغام بده.

hossin.esm
دوشنبه 29 فروردین 1390, 00:19 صبح
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script>
var flag=false;
function sendRequest() {
new Ajax.Request("test.php",
{
method: 'post',
postBody: 'name='+ $F('name'),
onComplete: function(req)
{
if(req.responseText=="empty")
{
$('show').innerHTML= req.responseText;
flag=false;
}
else
{
flag = true;
}
}
});
return flag;
}

</script>
</head>

<body>
<form id="test" action="test1.php" onsubmit="return sendRequest()">
<input type="text" name="name" id="name" >
<input type="submit" value="submit" onClick="sendRequest()">
</form>

<div id="show"></div>
</body>

</html>


در رابطه بااین کد بهتر هست بگم روش کد نویسی درست نیست و نیاز به فایل prototype.js با این حجم بالا نیست در صورتی که jquery حجم پایین تری دارد.
برای یاد گیری اژاکس به لینک زیر مراجعه کنید
http://www.w3schools.com/ajax/