ورود داده به اينپوت

Mohammadreza

Well-Known Member
سلام من يه فرمي دارم مي خوام فقط داده ي عددي بشه بهش بدي و دو رقم بيشتر نباشه و زير 20 باشه ؟
آيا راهي با Php هست ؟
 

jhoseini

Member
PHP:
$field_entry = $_POST['field_name'];
if( (strlen($field_entry)<=2) and (is_numeric($field_entry)) ){
   ;// do some thing.
} else {
  ;// prompt
}
 

.:: Ali ::.

Member
100% هست !

من پيشنهاد مي كنم مباحث رو كلي ياد بگيريد ؛ اينطور كه با طريقه ي شرط شرط هاي زيادي رو ياد بگيريد !

PHP:
if ($adad>20) {

    print "adad bozorg tar az 20 hast !";

} else {

    print "adad bozorgtar ya mosavi 20 hast !";

}

حالا به جاي استفاده از Print در صورت بزرگتر بودن مي تونين بعد از Print از return false استفاده كنيد تا باقي دستورات اجرا نشه .
متغير adad$ مي تونه همون متغير فرستاده شده از فرم باشه :

PHP:
if ($HTTP_POST_VARS['scr1']>20) {

    print "adad bozorg tar az 20 hast !";
    return false;

} else {

    print "adad bozorgtar ya mosavi 20 hast !";
    return true;

}

و مثالي كه منظور شما بود (اگر عدد از 20 بزرگتر و از 10 كوچكتر نباشد (علامت !)) :

PHP:
if (!($adad>20 && $adad<10)) {

    print "adad bayne 10 va 20 mibashad";
    return true;

} else {

    print "adad bozorgtar az 20 ya koochektar az 10 mibashad";
    return false;

}

مثال هاي بالا خيلي ظريف نيست و فقط به جهت آشنائي با دستورات مطرح شده .

البته تو برنامتون از شروط استفاده كردين ؛ پيشنهاد مي دم متغير هاي ارسالي رو توي متغير جديد ريخته و به جاي اينكه تك تك بررسي بشن توي يه حلقه بررسي بشن و در صورت عدد بزرگتر از 20 دستور خطا صادر بشه .

|| = (يا)
&& = (و) يا (هم) يا (روي هم رفته)
! = منفي (نباشد)

پيشنهاد مي كنم اين قسمت رو براي اطلاعات بيشتر مطالعه كنيد .


موفق باشيد .
 

parsmizban

Member
حالا من یه سوال دارم این بیشتر شبیه validate بود
نمیشه کاری کرد که اصلا نتونه بزنه با جاوا اسکریپت؟
 

.:: Ali ::.

Member
بله ؛ دوستمون مقادير مربوط به نمرات درسي رو مي خواستن ؛ با جاوا اسكريپت هم مي شه ، اما هميشه مرورگرهائي وجود دارن كه از جاوا اسكريپت پشتيباني نمي كنن ؛ بنابراين بهتره واسه محكم كاري سمت سرور هم بررسي بشه .
 

Mohammadreza

Well-Known Member
آلان اگه از اين دستورها استفاده كنم بعد از سابميت اررور مي ده !
آيا راهي هست كه فقط ورود داده ي عددي و زير 20 به اينپوت ممكن باشه ؟!
يعني اگه خواستي در اينپوت حروف بزني وارد نشه يا اينكه فقط دو عدد بشه وارد كني و عدد اول فقط 0و1و2 باشند ...
اميدوارمن منظورم رو فهميده باشيد !
 

jhoseini

Member
بلاه میشه، با JavaScript ، اما نمیشه بهش اعتماد کرد، طرف یخورده حرفه ای باشه میتونه دورش بزنه
الان مشکلت با اینی که بچه ها دادن چیه؟ چه پیغامی بر میگردونه؟
 

.:: Ali ::.

Member
پيشنهاد مي كنم كل اسكريپت رو اينجا بذاريد تا دوستان راهنمائيتون كنن .

در اينپوت ها براي اينكه فقط 2 كاراكتر وارد بشن بايد دستور HTML رو به شكل زير بنويسيد :

کد:
<input maxlength="2" name="input" />

و فرم كامل :

کد:
<form action=examples.php>
<input type=text name="nomre shomare 1" onchange="checkvalue(this,20)">
<input type=text name="nomre shomare 2" onchange="checkvalue(this,20)">
<input type=submit value="submit">
</form>

و دستورات جاوا اسكريپت و تابع ()checkvalue :
کد:
<script>
<!--
	function	checkvalue(field,limit)
	{
		pattern = /^[0-9]*$/;
		if(pattern.test(field.value)==false)
		{
			alert("karakter haye vared shode dar "+field.name+" yed adad nist !");
			field.value = "";
		}

		if(field.value > limit)
		{
			alert(field.name + "az 20 bishtar mibashad !");
			field.value = "";
		}
	}
-->
</script>

موفق باشيد .
 

Mohammadreza

Well-Known Member
پيشنهاد مي كنم كل اسكريپت رو اينجا بذاريد تا دوستان راهنمائيتون كنن .
قصدم يادگيريه ...
در ضمن منظور منو نفهميدين
شايد ايني كه مي گم اصلا امكانپذير نباشه ؟! نمي دونم والا
من ميگم غير از 1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20 هيچ عدد ديگه اي نشه وارد اينپوت كرد ( نوشت داخلش )
يعني براي مثال اگه يكي تايپ كرد 6 هيچي نخوره !
نمي دونم بازم بگيريد منظورم چيه يا نه ؟
 

.:: Ali ::.

Member
من اين اسكريپت رو واستون نوشتم :

کد:
<html>
<head>
<title>Test</title>
<script>
function checkNum(field,evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode

	if(!field.value || field.value == 1) {
		if (charCode < 48 || charCode > 57)	return false;
	}
	else
	if(field.value == 2) {
		if (charCode != 48)	return false;
	}
	else 
	if (field.value.length == 2)	return false
	else return false
	return true;
}
</script>
</head>
<body>
<form>
<input type="text" onkeypress="return checkNum(this,event);">
</form>
</body>
</html>

لطفا" اگه سوال ديگه اي در مورد جاوا اسكريپت داشتين تو قسمت مربوطه بپرسيد .

موفق باشيد .
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا