
ไม่มีชิ้นย่อย ให้ตัวเลข 0026 บวกเพิ่ม 0027
แต่ถ้าเลือก มีชิ้นย่อย ให้ตัวเลขเป็น 0026 ดังเดิม
เราจะเช็คอย่างไร เอาค่าไปบวกอย่างไรคะ
ก็ส่งค่า $_POST ปกติก็ได้นิครับ
แค่เพิ่มการส่งค่า ไม่มีชิ้นย่อย กับ ชิ้นย่อยไปด้วย
if(ไม่มีชิ้นย่อย != "")
{
ค่าโชว์ = ค่า 0026 + ค่้า 0027;
}else{
ค่าโชว์ = ค่า 0026;
}
แค่เพิ่มการส่งค่า ไม่มีชิ้นย่อย กับ ชิ้นย่อยไปด้วย
if(ไม่มีชิ้นย่อย != "")
{
ค่าโชว์ = ค่า 0026 + ค่้า 0027;
}else{
ค่าโชว์ = ค่า 0026;
}
555555+++ บวกเลขไม่เป็นหรือครับ ?
คำถามไม่ได้ระบุว่าบวกตอนไหน บวกทันที หรือบวกเมื่อ submit
บน PHP ก็ตามกระทู้ด้านบนเลย ใช้ if แยกข้อมุลจากการโพสต์ที่ตัวแปรของ option
ถ้า Javascript ก็ใช้ if เช่นกันตอนคำนวณ โดยใช้ document.getElementById('option_id').checked ในการตรวจสอบว่ามันถูกเลือกอยู่หรือไม่
ข้อควรระวัง เราไม่สามารถระบุ id เป็น array ได้ (แต่ name ได้ เช่น check[]) ให้เราใช้ตัวเลขกำกับลงไปให้ชัดเจนครับ เช่น check_1 check_2 (name และ id ไม่จำเป็นต้องเหมือนกัน)
คำถามไม่ได้ระบุว่าบวกตอนไหน บวกทันที หรือบวกเมื่อ submit
บน PHP ก็ตามกระทู้ด้านบนเลย ใช้ if แยกข้อมุลจากการโพสต์ที่ตัวแปรของ option
ถ้า Javascript ก็ใช้ if เช่นกันตอนคำนวณ โดยใช้ document.getElementById('option_id').checked ในการตรวจสอบว่ามันถูกเลือกอยู่หรือไม่
ข้อควรระวัง เราไม่สามารถระบุ id เป็น array ได้ (แต่ name ได้ เช่น check[]) ให้เราใช้ตัวเลขกำกับลงไปให้ชัดเจนครับ เช่น check_1 check_2 (name และ id ไม่จำเป็นต้องเหมือนกัน)


เหมือนถามแบบไม่อยากได้คำตอบ อะไรประมาณนั้น
คุณ goragod เขาดีมาก ที่แนะว่าต้องถามแบบบอกรายละเอียดแบบไหน คนที่จะตอบจะได้เข้าใจคำถาม
และให้คำตอบได้ตรงจุด คนเก่งเขาเจอคำถามแบบนี้ บางคนเขาแค่อ่าน แล้วก็ปล่ยอไป
แหมมมแซวกันซะหมายถึงการเขียนโค๊ตต่างหาก(อ่านดูเหมือนหลอกว่ายังไงก็ไม่รู้)
ตอนที่เราคลิกเลือกเลยคะโดยที่ยังไม่ submit เป็นการแสดงผลแบบทันที เพราะจะเอาค่าที่ได้ไปลง bd
คือถ้าเราเลือกไม่ชิ้นย่อย ก็ให้เอาค่าที่ได้มาบวกเพิ่ม
และถ้าเลือก ไม่มีชิ้นย่อยให้แสดงค่าเดิม
ประมาณนี้คะ
ตอนที่เราคลิกเลือกเลยคะโดยที่ยังไม่ submit เป็นการแสดงผลแบบทันที เพราะจะเอาค่าที่ได้ไปลง bd
คือถ้าเราเลือกไม่ชิ้นย่อย ก็ให้เอาค่าที่ได้มาบวกเพิ่ม
และถ้าเลือก ไม่มีชิ้นย่อยให้แสดงค่าเดิม
ประมาณนี้คะ
ลองทำตามคำตอบที่ 2 ดูนะครับ หลักการของมันก็ตรงไปตรงมาแหละครับ คือใช้ if ตรวจสอบว่า option ตัวใดถูกเลือกอยู่ แล้วก็ส่งไปคำนวณตามที่เลือกเลยครับ
if(document.getElementById('option_1').checked){
result = input_1 + input_2
} else {
result = input_1
}
ประมาณนี้
if(document.getElementById('option_1').checked){
result = input_1 + input_2
} else {
result = input_1
}
ประมาณนี้
<form id="form1" name="form1" method="post" action="">
<input type="radio" name="radio" id="radio" onclick="setData(2);" value="radio" /> ไม่มีขั้นย่อย
<input type="radio" name="radio2" id="radio2" onclick="setData(1);" value="radio2" /> มีขั้นย่อย
<input name="data1" type="text" id="data1" value="0026" size="10" />
</form>
<script type="text/javascript">
var originVal=null;
function setData(case_i){
var obj=document.getElementById('data1');
if(originVal==null){
originVal=obj.value;
}
if(case_i==1){ // ค่าเดิม
obj.value=originVal;
}else{ //ค่าเดิม + 1
var str=''+(parseInt(originVal)+1);
while(str.length<4){
str = '0' + str;
}
obj.value=str;
}
}
</script>
ขอบคุณมากคะเอาไปปรับใช้ได้อีกเยอะคะ
สิ่งที่ต้องทำจริงๆ มันอาจจะมีมากกว่านี้นะครับ โค้ดด้านบน จะเป็นแค่ การตรวจสอบเมื่อ ทำการเลือก option ตัวใดตัวหนึ่ง แต่ในความเป็นจริงแล้ว ผมไม่แน่ว่า input ที่ใช้ สามารถกรอกค่าได้หรือไม่ ถ้ามันสามารถกรอกค่าได้ ก็ควรเขียนอีกฟังก์ชั่นหนึ่งเพื่อรองรับการกรอกค่าด้วย เช่น การคำนวณเมื่อมีการกรอกตัวเลข ด้วย keypress (ตัวอย่างหาได้บนเว็บ) และ การควบคุมให้ input รับค่าได้เพียงตัวเลขเท่านั้น
เพื่อความสมบูรณ์ อาจมีอีกหลายอย่างที่ต้องทำ และ ถ้าชุดคำสั่งด้านบน อาจมีได้หลายชุดละก็ เตรียมปวดหัวได้เลย
กลัวรึยัง.....
แต่คำตอบของคำถามทั้งหมด หาได้บนเว็บครับ ค่อยๆ ศึกษาไปนะ
ว่าแต่เห็นทำมาตั้งนานแล้ว ยังไม่เสร็จอีกรึ ?...
เพื่อความสมบูรณ์ อาจมีอีกหลายอย่างที่ต้องทำ และ ถ้าชุดคำสั่งด้านบน อาจมีได้หลายชุดละก็ เตรียมปวดหัวได้เลย
กลัวรึยัง.....

แต่คำตอบของคำถามทั้งหมด หาได้บนเว็บครับ ค่อยๆ ศึกษาไปนะ
ว่าแต่เห็นทำมาตั้งนานแล้ว ยังไม่เสร็จอีกรึ ?...