Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ทำไมคำสั่ง Else โผล่ขึ้นมาก่อนเพื่อนละครับเนี่ย Help Me Plz.....



 

ทำไมคำสั่ง Else โผล่ขึ้นมาก่อนเพื่อนละครับเนี่ย Help Me Plz.....

 



Topic : 095450



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์




คำสั่ง else โผล่ได้ไง

ทำไมคำสั่งสั่ง Else มันโผล่มาก่อนละครับเนี่ย ผมแค่กด preview เฉย ๆ นะ

Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form action="PassScore.php" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	$score = $_POST['score'];
	grade($score);
	
	function grade($score)
	{
		if ($score > 49)
		{
			print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
		}
		else
		{
			print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
		}
	}
?>
</body>
</html>




Tag : PHP, MySQL, HTML/CSS, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-05-20 14:57:34 By : baka2tum View : 996 Reply : 20
 

 

No. 1



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


อธิบายคือ php จะรันจาก บนลงล่างเมื่อมีการ Refresh หน้า ในการเข้า browser แต่ละครั้งนั้่นก็คือ Refresh ไปแล้วหนึ่ง เพราะฉะนั้นแนวทางการเขียน

Code (PHP)
<body>
<form action="PassScore.php?Act=Grade" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	$Act=$_GET['Act']; // เมื่อกด submit ให้ดึงตัวแปรจาก URL ที่ชื่อว่าเกรด จะได้ค่า Act=Grade
		if($Act == 'Grade'){ // เมื่อเข้าเงื่อนไข
		$score = $_POST['score'];
		grade($score);
		
		function grade($score)
		{
			if ($score > 49)
			{
				print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
			}
			else
			{
				print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
			}
		}
	}
?>
</body>
</html>









ประวัติการแก้ไข
2013-05-20 15:04:02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:02:48 By : Ex-[S]i[L]e[N]t
 


 

No. 2



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : Ex-[S]i[L]e[N]t เมื่อวันที่ 2013-05-20 15:02:48
รายละเอียดของการตอบ ::
มันไม่ขึ้นคำสั่ง Else ครับแต่ว่าพอกด ปุม Submit ไม่มีผลลัพธ์ใด ๆ เกิดขึ้นเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:12:18 By : baka2tum
 

 

No. 3



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


Code (PHP)
<form action="test.php?Act=Grade" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	$Act=$_GET['Act']; // เมื่อกด submit ให้ดึงตัวแปรจาก URL ที่ชื่อว่าเกรด จะได้ค่า Act=Grade
		if($Act == 'Grade'){ // เมื่อเข้าเงื่อนไข
		$score = $_POST['score'];
		grade($score);
	}
	
	function grade($score){
		if ($score > 49)
		{
			print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
		}
		else
		{
			print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
		}
	}
?>

ลองอีกทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:17:08 By : Ex-[S]i[L]e[N]t
 


 

No. 4

Guest


Code (PHP)
<body>
<form action="PassScore.php" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	if (!empty($_POST)) {
		$score = $_POST['score'];
		grade($score);
		
		function grade($score) {
			if ($score > 49) {
				print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
			}
			else {
				print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
			}
		}
	}
?>
</body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:18:06 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 5



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

เด๋วช่วยอธิบายให้ไม่งงล่ะกันครับ
PHP มันไม่รู้หรอกครับว่าคุณ preview เฉยๆ หรือว่ากดปุ่ม submit แล้ว คุณต้องบอกมันครับ
ด้วยการตรวจจากตัวแปรที่ส่งมาจากฟอร์ม ซึ่งตัวแปรที่ว่านี้ก็คือ
<input> <select> <textarea> <button> อะไรก็ตามที่อยู่ใน <form> และมี attribute name
ในที่นี้ <form> ของคุณมีเข้าข่าย 1 ตัวคือ <input type="text" name="score"/>
และมันจะไปอยู่ในตัวแปร $_POST เพราะคุณสั่งให้ฟอร์มส่งค่าแบบ post (method="post")

แต่มันจะยังไม่ถูกส่งมา จนกว่าจะกดปุ่ม submit (หรือ submit ด้วยวิธีใดใดก็ตาม เช่น กด enter หรือผ่าน javascript)
ดังนั้น เมื่อรัน PHP ด้วยสภาพที่ไม่มีข้อมูลส่งมาจากฟอร์ม
$_POST จะเป็น array ว่างเสมอ

ซึ่งเราตรวจสภาพนี้ด้วยด้วย

if (empty($_POST)) { ... หากฟอร์มยังไม่ถูก submit

if (!empty($_POST)) { ... หากฟอร์มถูก submit แล้ว

Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<form action="PassScore.php" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	function grade($score)
	{
		if ($score > 49)
		{
			print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
		}
		else
		{
			print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
		}
	}
if (!empty($_POST)) {
	//$score = $_POST['score'];
	// หากตัวแปร $score นั้นมี่ที่ใช้ใช้ครั้งเดียว ก็ไม่จำเป็นต้องสร้างขึ้นมาก็ได้ ส่ง $_POST['score'] ไปตรงๆ เลย
	grade($_POST['score']);
}
?>
</body>
</html>



ประวัติการแก้ไข
2013-05-20 15:20:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:19:22 By : cookiephp
 


 

No. 6



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : Ex-[S]i[L]e[N]t เมื่อวันที่ 2013-05-20 15:17:08
รายละเอียดของการตอบ ::
ผมลองวิธีที่พี่บอกครับ พอใส่เลขแล้วกด Submit ขึ้นตามภาพครับ
Object not fond

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:29:06 By : baka2tum
 


 

No. 7



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : ห้ามตอบเกินวันละ 2 กระทู้ เมื่อวันที่ 2013-05-20 15:18:06
รายละเอียดของการตอบ ::
ผมลองวิธีนี้ พอใส่ค่าแล้วกดปุ่ม Submit ก็ไม่มีผลลัพธ์ขึ้นเหมือนกันครับ T_T

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:30:39 By : baka2tum
 


 

No. 8



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ส่งไป PassScore.php หรือ test.php
ไฟล์ไหนเป็นไฟล์ที่ใช้รับค่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:36:31 By : Naizan
 


 

No. 9



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : cookiephp เมื่อวันที่ 2013-05-20 15:19:22
รายละเอียดของการตอบ ::
มันขึ้นมา 2 ผลลัพทธ์ครับ
แต่ปัญหาคือทำไมมันขึ้นคำสั่ง Else ขึ้นมาก่อนอะครับ
โครต งง เบย เด่วจะเปลี่ยนใจไปหันด HTML 5 ดีไหมเนี่ย ฮือ ..... T_T

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:36:57 By : baka2tum
 


 

No. 10



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : Naizan เมื่อวันที่ 2013-05-20 15:36:31
รายละเอียดของการตอบ ::
PassScore.php ครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:38:09 By : baka2tum
 


 

No. 11



โพสกระทู้ ( 4,169 )
บทความ ( 7 )

Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 10 เขียนโดย : baka2tum เมื่อวันที่ 2013-05-20 15:38:09
รายละเอียดของการตอบ ::
คูณลองเปลี่ยน url apply code ดูสิครับ
หัดสังเกตุและปรับเปลี่ยน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:42:56 By : Ex-[S]i[L]e[N]t
 


 

No. 12



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ผมลองใช้ Code นี้
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<form action="PassScore.php?Act=Grade" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit"/></p>
</form>
<?php
	$Act=$_GET['Act']; // เมื่อกด submit ให้ดึงตัวแปรจาก URL ที่ชื่อว่าเกรด จะได้ค่า Act=Grade
		if($Act == 'Grade'){ // เมื่อเข้าเงื่อนไข
		$score = $_POST['score'];
		grade($score);
	}
	
	function grade($score){
		if ($score > 49)
		{
			print "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";
		}
		else
		{
			print "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";
		}
	}
?>
</body>
</html>

ผลออกมาว่าตอน รันขึ้นมาครั้งแรก ไม่ขึ้นคำสั่ง Else ครับ
พอใส่ผลลัพธ์เข้าไปก็ขึ้นตามปกติ แต่....
พอผมลบค่าที่อยู่ใน Textbox แล้วกด Submit คำสั่ง Else ก็ยังโผล่มาอยุ่ดีครับ T_T
ว๊ากกกกกกก ผีหลอก



ประวัติการแก้ไข
2013-05-20 15:45:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:44:35 By : baka2tum
 


 

No. 13



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 9 เขียนโดย : baka2tum เมื่อวันที่ 2013-05-20 15:36:57
รายละเอียดของการตอบ ::
ก็แน่สิครับ เพราะค่าที่ส่งมามันคือ สตริงว่าง ""
เมื่อเอาไปเปรียบเทียบกับ 49
มันจะแปลงเป็นตัวเลขก่อน ซึ่งจะได้ 0
ทำให้เงื่อนไขเป็น if (0 > 49) ซึ่งไม่มีทางเป็นจริง มันถึงไป else ไงครับ
คุณยังเข้าใจ if else ผิดอยู่นะครับ ไปศึกษาเพิ่มเติมก่อนนะครับ



ประวัติการแก้ไข
2013-05-20 15:48:44
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 15:48:14 By : cookiephp
 


 

No. 14



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 13 เขียนโดย : cookiephp เมื่อวันที่ 2013-05-20 15:48:14
รายละเอียดของการตอบ ::
รับทราบครับ ผม ผมจะพยายามศึกษาครับ
ผมมือใหม่จริง ๆ ครับ


ขอบคุณสำหรับ คำแนะนำทุกท่านเลยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 16:07:51 By : baka2tum
 


 

No. 15



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ปัญหาที่คุณพบ ก็คือ แม้จะเป็นค่าว่าง ก็ยังบอกว่าสอบตกใช่หรือไม่ครับ

ถ้าใช่ก็เพิ่มเงื่อนไขเมื่อกดปุ่ม Submit Query ครับ
แจ้งเตือนเลยว่าต้องไม่เป็นค่าว่าง

หรือ เปลี่ยนบรรทัด grade($score); โดยเพิ่มการเช็กค่าว่าก่อนครับ

if($score != '') grade($score);



ประวัติการแก้ไข
2013-05-20 16:13:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 16:13:17 By : Naizan
 


 

No. 16



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 15 เขียนโดย : Naizan เมื่อวันที่ 2013-05-20 16:13:17
รายละเอียดของการตอบ ::
ว๊าววววววว ได้แล้วครับผม
ขอบคุณมากครับ สำรหรับความรู้ใหม่ ๆ

if($score != '') grade($score);



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 16:16:52 By : baka2tum
 


 

No. 17



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 15 เขียนโดย : Naizan เมื่อวันที่ 2013-05-20 16:13:17
รายละเอียดของการตอบ ::
ถ้าตรวจแบบนั้นจะมีกรณีที่ไม่ทำงานอยู่ด้วยครับ คือ พิมพ์ 0 ลงไป


if ($score != '') { grade($score); }

หาก $score มีค่าเป็น 0 ก็จะไม่เข้าเงื่อนไขเหมือนกับสตริงว่าง (ค่าว่าง)
เพราะ != มันมีความหมายว่า "ไม่คล้ายกับ" ไม่ใช่ "ไม่เท่ากับ"
ซึ่งค่าที่ "คล้ายกับสตริงว่าง" ได้แก่
0
'0'
null
false


ดังนั้นถ้าจะตรวจสตริงว่าง (ค่าว่าง)จริงๆ ต้องใช้ === หรือ !== ครับ
if ($score !== '') { grade($score); }


แต่กรณีข้างบน หาก $score ไม่ใช่สตริงว่าง ก็จะเข้าเงื่อนไขหมด
เช่น
$score = 'abc' $score = ' ' $score = '****'

เพราะค่าดังกล่าวไม่ใช่สตริงว่าง

ดังนั้นถ้าจะตรวจว่า $score ไม่ใช่สตริงว่าง และเป็นตัวเลข
ใช้ is_numeric() ครับ

// สตริงตัวเลขเช่น '0', '500', '45.24', '-145' จะผ่านเงื่อนไขหมด // แต่ 'abc', ' ', '****' จะไม่ if (is_numeric($score)) { grade($score); }



ประวัติการแก้ไข
2013-05-20 16:50:28
2013-05-20 16:52:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 16:49:39 By : cookiephp
 


 

No. 18



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ความรู้ ความรู้ ดูดไว้ ดูดไว้ ฮ่า ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 17:00:16 By : baka2tum
 


 

No. 19



โพสกระทู้ ( 1,819 )
บทความ ( 20 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 18 เขียนโดย : baka2tum เมื่อวันที่ 2013-05-20 17:00:16
รายละเอียดของการตอบ ::
ดูดไปเลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 17:09:49 By : cookiephp
 


 

No. 20



โพสกระทู้ ( 116 )
บทความ ( 2 )



สถานะออฟไลน์


Code (PHP)
<body>
<form action="<? $PHP_SELF;?>" method="post">
<p>ระบุคะแนนสอบ : <input type="text" name="score"/></p>
<p><input type="submit" name="submit" id="submit"/></p>
</form>
<?php

if($_POST['submit']!="")
{
   grade($_POST['score']);
   function grade($score)
		{
			                      if ($score > 49){echo "ยินดีด้วย คะแนนที่คุณได้คือ" .$score. "<br>";}
		 	                     else{echo "เสียใจด้วย คะแนนที่คุณได้คือ".$score."<br>";}
		}
}  
?>
</body>
</html>


ลองเขียนแบบ action หน้าเดียว แบบนี้ดู ไม่ต้องเปลืองกระดาษ ลายหูลายตา อิอิ :P
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-05-20 18:04:35 By : เจ้าปัญหา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ทำไมคำสั่ง Else โผล่ขึ้นมาก่อนเพื่อนละครับเนี่ย Help Me Plz.....
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่