|
|
|
ทำไมคำสั่ง Else โผล่ขึ้นมาก่อนเพื่อนละครับเนี่ย Help Me Plz..... |
|
|
|
|
|
|
|
อธิบายคือ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เด๋วช่วยอธิบายให้ไม่งงล่ะกันครับ
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่งไป PassScore.php หรือ test.php
ไฟล์ไหนเป็นไฟล์ที่ใช้รับค่าครับ
|
|
|
|
|
Date :
2013-05-20 15:36:31 |
By :
Naizan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองใช้ 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหาที่คุณพบ ก็คือ แม้จะเป็นค่าว่าง ก็ยังบอกว่าสอบตกใช่หรือไม่ครับ
ถ้าใช่ก็เพิ่มเงื่อนไขเมื่อกดปุ่ม Submit Query ครับ
แจ้งเตือนเลยว่าต้องไม่เป็นค่าว่าง
หรือ เปลี่ยนบรรทัด grade($score); โดยเพิ่มการเช็กค่าว่าก่อนครับ
if($score != '') grade($score);
|
ประวัติการแก้ไข 2013-05-20 16:13:35
|
|
|
|
Date :
2013-05-20 16:13:17 |
By :
Naizan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ความรู้ ความรู้ ดูดไว้ ดูดไว้ ฮ่า ๆ
|
|
|
|
|
Date :
2013-05-20 17:00:16 |
By :
baka2tum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 :
เจ้าปัญหา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|