คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
Q1 : ทำแบบหลายไฟล์ัมนดีกว่า แบบไฟล์ยังไงเหรอครับ เห็นหลายคนใช้กัน
A1 : ง่ายต่อการ control ครับ อีกทั้งเวลาประมวลผล PHP Interpeter ที่ฝั่ง Server ก็จะทำงานแค่เฉพาะที่ต้องทำ
Q2 : ผมลองทำดูมะได้อ่ะ แบบนี้ป่าวครับ
A2 : จขกทยังไม่ได้กำหนด state ว่า เมื่อใด เป็นอะไร (แนะนำว่าอย่าใช้ submit เพราะเวลาทำงานจริง เราจะ Validate ข้อมูลก่อน)
=========================
mail_action.php
<?
if(isset($_POST['m_state'])){ $m_state=$_POST['m_to']; }else{ $m_state=0; }
if(isset($_POST['m_to'])){ $m_to=$_POST['m_to']; }else{ $m_to=""; }
if(isset($_POST['m_subject'])){ $m_subject'=$_POST['m_subject'']; }else{ $m_subject'=""; }
if(isset($_POST['m_contents'])){ $m_contents=$_POST['m_contents']; }else{ $m_contents=""; }
?>
<html>
<head><title>mail action</title>
</head>
<body>
<?
if($m_state==0 || $m_state==1) // 0=new mail 1=confirm mail
{
echo "<form name=m_form id=m_form method=post>\n";
echo "mail to : <input type=text name=m_to id=m_to value='".$m_to."'>\n";
echo "subject : <input type=text name=m_subject id=m_subject value='".$m_subject."'>\n";
echo "mail contents : <input type=text name=m_contents id=m_contents value='".$m_contents."'>\n";
echo "<input type=hidden name=m_state id=m_state value='".$m_state."'>\n";
echo "</form>\n";
if($m_state==0)
{
echo "<input type=button value='Send' onClick=\"doSend(1);\">\n";
}
else
{
echo "<input type=button value='Confirm Send' onClick=\"doSend(2);\">\n";
}
}
else if($m_state==2)
{
// process send mail
echo "send mail";
}
?>
<script language="JavaScript">
function doSend(s)
{
m_form.m_state.value=s;
m_form.action="mail_action.php";
m_form.submit();
}
</script>
</body>
</html>
=========================
ทีนี้ จขกท ลองทำต่อ ว่า
(1) ถ้าไม่กรอก to / subject / contents เมื่อกดปุ่ม Send แจ้งเตือน ว่าข้อมูลไม่ครบ
(2) ตรวจสอบความถูกต้องของ mail address ว่าต้องเป็น xxxx@yyyyy
(3) กำหนดว่าส่งได้เฉพาะ xxxx@gmail.com และ xxxx@hotmail.com เท่านั้น
A1 : ง่ายต่อการ control ครับ อีกทั้งเวลาประมวลผล PHP Interpeter ที่ฝั่ง Server ก็จะทำงานแค่เฉพาะที่ต้องทำ
Q2 : ผมลองทำดูมะได้อ่ะ แบบนี้ป่าวครับ
A2 : จขกทยังไม่ได้กำหนด state ว่า เมื่อใด เป็นอะไร (แนะนำว่าอย่าใช้ submit เพราะเวลาทำงานจริง เราจะ Validate ข้อมูลก่อน)
=========================
mail_action.php
<?
if(isset($_POST['m_state'])){ $m_state=$_POST['m_to']; }else{ $m_state=0; }
if(isset($_POST['m_to'])){ $m_to=$_POST['m_to']; }else{ $m_to=""; }
if(isset($_POST['m_subject'])){ $m_subject'=$_POST['m_subject'']; }else{ $m_subject'=""; }
if(isset($_POST['m_contents'])){ $m_contents=$_POST['m_contents']; }else{ $m_contents=""; }
?>
<html>
<head><title>mail action</title>
</head>
<body>
<?
if($m_state==0 || $m_state==1) // 0=new mail 1=confirm mail
{
echo "<form name=m_form id=m_form method=post>\n";
echo "mail to : <input type=text name=m_to id=m_to value='".$m_to."'>\n";
echo "subject : <input type=text name=m_subject id=m_subject value='".$m_subject."'>\n";
echo "mail contents : <input type=text name=m_contents id=m_contents value='".$m_contents."'>\n";
echo "<input type=hidden name=m_state id=m_state value='".$m_state."'>\n";
echo "</form>\n";
if($m_state==0)
{
echo "<input type=button value='Send' onClick=\"doSend(1);\">\n";
}
else
{
echo "<input type=button value='Confirm Send' onClick=\"doSend(2);\">\n";
}
}
else if($m_state==2)
{
// process send mail
echo "send mail";
}
?>
<script language="JavaScript">
function doSend(s)
{
m_form.m_state.value=s;
m_form.action="mail_action.php";
m_form.submit();
}
</script>
</body>
</html>
=========================
ทีนี้ จขกท ลองทำต่อ ว่า
(1) ถ้าไม่กรอก to / subject / contents เมื่อกดปุ่ม Send แจ้งเตือน ว่าข้อมูลไม่ครบ
(2) ตรวจสอบความถูกต้องของ mail address ว่าต้องเป็น xxxx@yyyyy
(3) กำหนดว่าส่งได้เฉพาะ xxxx@gmail.com และ xxxx@hotmail.com เท่านั้น
แสดงความคิดเห็น
php เขียนให้หยุดคำสั่ง แล้วรอรับ คำสั่งใหม่ ใช้ code ยังไงเหรอ มันมีไหมโค๊ดแบบนี้
กรอกฟอร์มเสร็จ ==> กด submit ==> echo(ข้อมูลที่กรอก)=> กด ปุ่มอีกที มันจะรันคำสั่งต่อ จนจบ
<?php
echo "ข้อมูลที่กรอก...."
=>หยุดชั่วคราว
=> กด ปุ่ม1 มันจะรันคำสั่งต่อ
=> กด ปุ่ม2 มันจะย้อนกลับฟอร์มเพื่อแก้ไข
...
code ต่อไป
?>
จะใช้คำสั่งประมาณไหนเหรอครับ
โค๊ดจริงที่ใช้งานได้
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้