รบกวนอาจารย์ แอดมิน ท่านผู้รู้หน่อยครับ

1,016 สังคมนักพัฒนาระบบ (Community)

ขอวิธีการเขียนโค้ด php เวลาเรากรอกตัวเลขในช่อง textbox แล้ว บันทึกลงฐานอัตโนมัติโดยไม่ต้องมีปุ่ม submit แล้วบวกค่าตัวเลขจาก textbox1 และ textbox2 มารวมใน textbox3 ดังรูป  

sum

คำตอบ/อธิบาย

Pongkot Sae-li

Pongkot Sae-li

ตอบเมื่อ แก้ไขล่าสุดเมื่อ 1 พ.ค. 2017, 10:15:01

คิดว่าแบบนี้ PHP คงช่วยอะไรไม่ได้ครับ แต่ถ้าเป็น JavaScript นี่น่าจะทำได้นะครับ เพราะปกติแล้ว PHP ต้องมีการส่งจากพารามิเตอร์ออกไปเพื่อเอาไปคำนวณหรือแล้วแต่เราจะทำอะไรกับมัน

ตอบเมื่อ

เอาแบบ javascript ก็ได้ครับ เดี๋ยวค่อยไปปรับแต่งเอา แต่ว่าไม่รู้จะเริ่มต้นเขียนอย่างไรครับ

มานพ กองอุ่น

มานพ กองอุ่น

ตอบเมื่อ แก้ไขล่าสุดเมื่อ 1 พ.ค. 2017, 12:11:27

เป็นไอเดียนะครับ

<input name="1" id="male" value="0">
<input name="2" id="female" value="0">
<input name="3" id="total" value="" readonly>

<script>
var input1 = $('#male'),
    input2 = $('#female'),
    input3 = $('#total');
input1.change(function () {
    input3.val(parseInt(input1.val()) + parseInt(input2.val()));
});
input2.change(function () {
    input3.val(parseInt(input1.val()) + parseInt(input2.val()));
});
</script>

ตอบเมื่อ

ขอบคุณครับ...อีกหน่อยนึงครับ แล้วถ้าอยากให้จัดเก็บในฐานข้อมูลด้วยต้องเพิ่มโค้ดอย่างไรครับ

มานพ กองอุ่น

มานพ กองอุ่น

ตอบเมื่อ

<form action="save.php" method="post">

<input name="1" id="male" value="0">
<input name="2" id="female" value="0">
<input name="3" id="total" value="" readonly>

<input type="submit" value="OK" />
</form>

เขียน PHP บันทึกปกติ ครับ

<script>
var input1 = $('#male'),
    input2 = $('#female'),
    input3 = $('#total');
input1.change(function () {
    input3.val(parseInt(input1.val()) + parseInt(input2.val()));
});
input2.change(function () {
    input3.val(parseInt(input1.val()) + parseInt(input2.val()));
});
</script>

สร้าง file save.php

เขียนโปรแกรม Save ค่าปกติเลยครับ

ตอบเมื่อ

Admin ครับ ใน textbox ถ้าใส่เลข 0 ไป เวลาบันทึกข้อมูลมันบันทึกไม่ได้ครับ มันไม่ลงฐานข้อมูล จะแก้อย่างไรในกรณีที่ในฟิวด์นั้นไม่มีจำนวนตัวเลขที่มากกว่า 0

มานพ กองอุ่น

มานพ กองอุ่น

ตอบเมื่อ

ลองใส่ค่า default ของ field ในตารางในฐานข้อมูลเป็น 0 นะครับ