Sat 10 Dec 2005 10:06:48
สมมุติว่าผมมี radiobutton อยู่ 2 อัน เวลาที่ผมเลือก radiobutton อันใดอันหนึ่งแล้วจะสั่งให้ combobox นั้นไม่สามารถทำงานได้ Disible นะครับ หรือถ้าหากผมเลือกข้อมูลอันใดอันหนึ่งจาก combobox แล้วจะสั่งให้ radiobutton นั้นไม่สามารถทำงานได้ ไม่ทราบว่าจะต้องทำอย่างไรครับ ช่วยหน่อยครับ
function enabledcombo(obj){
var theform = obj.form;
if(obj.value=="enabled"){
theform.combo1.disabled = false;
}else if(obj.value=="disabled"){
theform.combo1.disabled = true;
}
}
function enabledradio(obj){
var theform = obj.form;
if(obj.value!="0"){
theform.state[0].disabled = true;
theform.state[1].disabled = true;
}
}
</script>
<form action"...">
<input type="radio" name="state" value="enabled" onclick="enabledcombo(this)">Enable <br>
<input type="radio" name="state" value="disabled" onclick="enabledcombo(this)">Disabled <br>
<select name="combo1" onchange="enabledradio(this)">
<option value="0">please select</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
โค๊ดทั้งหมดประมาณนี้ครับ ลองนำไปประยุกต์ดูนะครับ
Sat 10 Dec 2005 15:45:32
ขอบคุณมากครับ
Sat 10 Dec 2005 21:04:15
ต่ออีกหน่อยนะครับ
คือผมประยุกต์ใช้ไม่เปนนะครับ คือ ผมลองเอา Rediobutton มาใช้ประมาณ 5 อันแล้วลองประยุกต์ใช้กับ soucecode ที่ให้มานะครับ แต่เวลาเราเลือกที่ combobox มันก็ยังดีนะครับ คือ rediobutton นั้นไม่สามารถใช้งานได้
แต่ถ้าผมเลือก rediobutton แล้ว combobox มันกลับยังใช้งานได้อยู่นะครับ หรือว่าผมต้องเปลี่ยนจาก if else มาเป็น switch ครับ ช่วยอีกทีนะครับ
*****************ขอบคุณครับ***************
ส่วนถ้าใช้ switch ก็สามารถทำได้โดย
switch(obj.value){
var theform = obj.form;
case "enabled":
theform.combo1.disabled = false;
break;
case "disabled":
theform.combo1.disabled = true;
break;
}
ถ้ามีมากกว่านี้ก็ทำการเช็กค่าที่ตรงกับที่ radio จะส่งให้มาเท่านั้นครับ
Sun 11 Dec 2005 13:36:29
**********ครับผมได้ครับ*******************
แล้วถ้าหากว่าผมเลือก rediobutton อันใดอันหนึ่ง หรือ เลือกข้อมูลใน combobox อันใดอันหนึ่ง ผมจะให้มันบันทึกลงฐานข้อมูลยังงัยครับ
---------------ข้อมูลของ rediobutton กับข้อมูลใน combobox ในนั้นผมจะนำมาบันทึกลงใน Field เดียวกัน-----------------
เช่น ผมมีตาราง ที่ชื่อว่า MyTbl แล้วมี Field ภายในนั้นคือ
-ID (Pk_OutoNumber)
-MyData
ผมจะบันทึกลงใน MyData นะครับ พอจะมีวิธีหรือป่าวครับ
อีกหน่อยนะครับ ก่อนที่จะบันทึกลงฐานข้อมูลผมต้องทำการเช็คด้วยว่า ผู้ใช้ได้ทำการเลือก rediobutton หรือ combobox หรือยัง ถ้ายังไม่ได้เลือกก็ให้แสดง Messagebox ออกมานะครับ แต่ถ้าเลือกแล้ว ก็ให้ submit ได้เลยนะครับ
***********กรุณาช่วยอีกหน่อยนะครับ จำเปนมาครับ**************
ถ้าเช็กก็สามารถเช็กได้โดย
ก่อนอื่นต้องประกาศฟังก์ชั่นที่ใช้ในการ handle ว่า user ทำการกดปุ่ม submit หรือยังด้วย
<form action="..." method="..." onsubmit="return validate_form(this)">
จากข้างบนเมื่อ user ทำการกดปุ่ม submit แล้ว browser จะทำการเรียกใช้งาน function validate_form() โดยมีการส่ง argument เป็น object ของ form เพื่อจะได้ง่ายในการทำงานครับ ส่วน keyword return นั้นใส่เพื่อให้ฟอร์มต้องรอการ return ค่าจากฟังก์ชั่น validate_form() ก่อนว่าเป็น true หรือ false จึงจะทำงานต่อได้ โดยถ้ามีการ return ค่ามาเป็น true นั้น browser ถึงจะทำการส่งค่าไปยังไฟล์ที่ระบุไว้ใน attribute action ครับ
อีกส่วนก็ทำการประกาศ function ไว้ในส่วน header ของเอกสารครับ
<script language="javascript" type="text/javascript">
function validate_form(obj){
if(!obj.state[0].checked && !obj.state[1].checked && !obj.state[2].checked && !obj.state[3].checked && !obj.state[4].checked && obj.combo1.value=="0"){
alert("โปรดเลือก radio button หรือ combobox ก่อนครับ");
return false;
}
return true;
}
</script>
จากฟังก์ฃั่นจะเป็นการเช็คค่าของ radio ว่ามีอันใดถูกเลือกบ้างหรือยังและตรวจสอบว่า combobox นั้นมีการเปลี่ยนค่าหรือไม่ (ในที่นี้ค่าที่ให้เริ่มต้นมีค่าเป็น 0 ) ถ้าไม่มีการเลือกใดๆเลยจะทำการ alert ข้อความขึ้นมา และทำการ return false เพื่อให้ form ไม่ทำการส่งค่าไปยังไฟล์ครับ
ส่วนที่ต้องการนำข้อมูลทั้ง 2 ส่วนไปจัดเก็บใน field เดียวกันนั้น ก็อาจจะใช้
<?
$data = "";
if(isset($_POST["state"]) && $_POST["state"] != ""){
$data = $_POST["state"];
}else if(isset($_POST["combo1"]) && $_POST["combo1"] != ""){
$data = $_POST["combo1"];
}
?>
ยังไม่ได้ทำการทดลองนะครับ ยังไงคงต้องลอง debug ดูด้วยครับ โค๊ดประมาณนี้ล่ะครับ
Sun 11 Dec 2005 22:23:52
ครับตรงส่วนที่เป็น combobox นั้นผมดึงข้อมูลมาจากฐานข้อมูลเพื่อให้ทำการเลือกข้อมูลนะครับ ผมลองดูแล้วนะครับ ตาม soucecode ที่ #6 ส่วนแรกส่วนของการตรวจเช็คค่าเลือกหรือไม่เลือกนั้น มันจะมองว่า combobox นั้น ได้ทำการเลือกแล้วเวลาเราไม่ได้เลือกอะไรมันจะสามารถ Submit ได้นะครับ
*****แต่ถ้าหากว่าเราไม่ดึงข้อมูลมาแสดงใน Combobox นั้นนะครับ กำหนดค่าตายตัวให้กับ Combobox นั้นเลย มันก็จะทำการตรวจเช็คและก็แสงด Messagebox ออกมา แต่ถ้าดึงข้อมูลมาจากฐานข้อมูลมาแสดงเพื่อให้เลือกใน Combobox มันจะไม่เช็คนะครับ Submit ได้******
พอมีวิธีแก้ไขหรือป่าวครับ ช่วยดูให้หน่อยนะครับ
<?
// established connection
// query
echo "<select name=\"combo1\" onchange=\"enabledradio(this)\">";
echo "<option value=\"0\">please select</option>";
while($row = mysql_fetch_array($res, MYSQL_ASSOC)){
echo "<option value=\"".$row["value"]."\">".$row["name"]."</option>";
}
echo "</select>";
// terminated connection
?>
ประมาณนี้ล่ะครับ
Mon 12 Dec 2005 22:59:55
<?
$data = "";
if(isset($_POST["state"]) && $_POST["state"] != ""){
$data = $_POST["state"];
}else if(isset($_POST["combo1"]) && $_POST["combo1"] != ""){
$data = $_POST["combo1"];
}
?>
จาก code ที่ให้มาข้างบนนี้เป็น php ใช่หรือป่าวครับ
ช่วยแนะนำที่เป็น asp หน่อยจะได้มั้ยครับ
****ขอบคุณครับ*****
<%
Dim data
if request.form("state") <> "" then
data = request.form("state")
elseif request.form("combo1") <> "" then
data = request.form("combo1")
end if
%>
คงได้ประมาณนี้ล่ะครับ
Tue 13 Dec 2005 13:47:46
ขออีกรอบนะครับ
souce code ข้างล่างนี้นะครับ
<select name="combo1" onChange="enabledradio(this)" >
<option value="0">- - - - - - เลือกข้อมูล - - - - - -</option>
<%Do while not rs1.EOF%>
<option value="<%=trim(rs1("ID"))%>" ><%=trim(rs1("Data"))%></option>
<% rs1.movenext
loop
rs1.close
%>
มันก็ ok นะครับ เวลาที่ผมไม่ได้เลือก ข้อมูลใน Combobox นี้เมื่อผมใช้ java ใน #8 ตามที่ให้มานะครับ มันก็เช็คว่าเรายังไม่ได้เลือกข้อมูลใน Combobox นะครับ แต่พอเราเลือกข้อมูลแล้ว พอบันทึกลงฐานข้อมูลในตาราง MyTbl และลงใน Field ชื่อว่า MyData ตามตัวอย่างฐานข้อมูลที่ #5 นะครับ มันกลับไม่มีค่าอะไรอยู่ในฐานข้อมูลเลยนะครับ ไม่รู้ว่าเพราะอะไรนะครับ เวลาเลือกข้อมูลใน Combobox มันก็มีข้อมูลที่เราดึงมาจากฐานข้อมูลให้เราเลือกนะครับ แต่พอเลือกแล้ว ทำการบันทึกมันกลับไม่มีค่าอะไรลงไปในฐานข้อมูลของเราเลยครับ
อีกหน่อยนะครับ
Rediobutton ก็เหมือนกันครับ ไม่มีค่าอะไรเหมือนกับ Combobox ครับ หรือว่าตอนทีเรารับค่า
rediobutton ก่อนหน้านี้ที่จะทำการบันทำ มันเป็น Array นะครับ หน้าที่ทำการบันทึกเราตอนที่รับค่าเราต้องทำให้มันเป็น Array ด้วยครับ
rediobutton ที่ชื่อว่า stata เนี่ยครับตาม soucecode ที่ให้ผมมาตอนแรกนะครับ
<script language="javascript" type="text/javascript">
function validate_form(obj){
if(!obj.state[0].checked && !obj.state[1].checked && !obj.state[2].checked && !obj.state[3].checked && !obj.state[4].checked && obj.combo1.value=="0"){
alert("โปรดเลือก radio button หรือ combobox ก่อนครับ");
return false;
}
return true;
}
</script>
นะครับ อีกรอบนะครับ
ขอบพระคุณมากครับ
คุณต้องลอง debug ดูครับว่าทำไมถึงไม่ได้ เท่าที่ผมได้ลองแล้วค่าที่ส่งมาก็เป็นคู่ key=value ครับ
ซึ่งเมื่อลองใช้ response.write(data) เพื่อแสดงผลการรับค่าจากการ submit ดูครับ
Tue 13 Dec 2005 19:16:49
Wed 14 Dec 2005 08:41:24
ต่ออีกหน่อยนะครับ
ถ้าผมเลือกข้อมูลใน Combobox อันใดอันหนึ่งแล้ว หรือเลือก Rediobutton อันใดอันหนึ่งแล้วให้รายละเอียดของข้อมูลเหล้านั้นมาแสดงบน TextField ครับ
ซึ่ง Combobox นั้นข้อมูลที่ให้เลือกผมดึงมาจากฐานข้อมูล ส่วน Rediobutton นั้นผมกำหนดเป็นค่าตายตัวนะครับ
เช่น ผมเลือกข้อมูลใน Combobox ที่มีข้อมูลว่า "MyData" แล้วรายละเอียดของข้อมูล MyData แสดงใน Textfield คือ "MyData1.1"
ช่วยอีกทีนะครับ
<script language="javascript">
function showData(obj,txt){
var theform = obj.form;
theform.info.value = txt;
}
</script>
<form action="..." method="....">
Info : <input type="text" name="info"><br>
<select name="combo1" onchange="showData(this,this.options[this.selectedIndex].label)">
<option value="0">Please select</option>
<option label="Number 1" value="value 1">1</option>
<option label="Number 2" value="value 2">2</option>
</select>
<input type="radio" name="state" value="1" onclick="showData(this, 'Information')">
<input type="radio" name="state" value="2" onclick="showData(this, 'Contact')">
</form>
จากข้างบนจะเห็นว่าเป็นการนำข้อมูลใน select มาแสดงผลผมใช้ attribute label ในการอ้างอิงมาแสดงผล
ส่วน radio นั้นเราสามารถส่งค่าตามต้องการไปยังฟังก์ชั่นได้เลยครับ
Wed 14 Dec 2005 14:11:02
พี่ครับ พอจะมี Mail หรือป่าวครับ เผื่อผมจะได้ Msn ไปปรึกษาหน่อย
Wed 14 Dec 2005 15:02:13
ไม่เปนไรครับ ขอบคุณมากครับ
Wed 14 Dec 2005 17:02:04
คือ combobox ที่ผมมีอยู่ผมดึงตามนี้นะครับ
<select name="combo1" onChange="enabledradio(this)" >
<option value="0">- - - - - - เลือกข้อมูล - - - - - -</option>
<%Do while not rs1.EOF%>
<option value="<%=trim(rs1("ID"))%>" ><%=trim(rs1("Data"))%></option>
<% rs1.movenext
loop
rs1.close
%>
ซึ่งในส่วนของฐานข้อมูลผมจะเพิ่มราคาลงไปคือ field = Price นะครับ
id,data,price
ซึ่งเวลาที่ผมเลือกข้อมูลใน combobox นั้นมันจาเก็บค่า data ไว้เพื่อบันทึกลงในฐานข้อมูลนะครับ แล้วส่วนของ price นั้นผมจะให้มันแสดง ใน textfield เพื่อที่จะนำไปบันทึกลงฐานข้อมูลด้วยเช่นกัน ผมไม่รู้ว่าจะดึง price เวลาที่เลือกข้อมูล data ออกมายังงัยครับ และพอดึงได้มันจะนำมาแสดงใน textfield ยังงัยครับ
ในส่วนที่ผม
Wed 14 Dec 2005 17:04:22
ขอโทษนะครับ เพิ่มเติมครับ เปลี่ยนจาก<%=trim(rs1("ID"))%> เปน <%=trim(rs1("Data"))%>ครับ
<option value="0">- - - - - - เลือกข้อมูล - - - - - -</option>
<%Do while not rs1.EOF%>
<option value="<%=trim(rs1("Data"))%>" label="<% =trim(rs1("price"))%>"><%=trim(rs1("Data"))%></option>
<% rs1.movenext
loop
rs1.close
%>
</select>
ลองแบบนี้ดูครับ
Tue 26 Jun 2007 15:44:23
อยากทราบว่าถ้ามีRadio button10 ปุ่ม ถ้าเรากดsubmit ต้องการให้มันบอกว่ายังกรอกไม่ครบจะทำยังไงครับ
Thu 5 Jul 2007 10:47:43
อยากทราบว่าถ้าเราออกแบบฟอร์มมาให้ผู้ใช้กรอกข้อมูล
แล้วผู้ใช้กรอกข้อมูลไม่ครบ
อยากให้โปรแกรมบอกผู้ใช้ว่าคุณยังกรอกข้อมูลยังไม่ครบ
แล้วให้ผู้ใช้กรอกข้อมูลตรงที่ยังไม่ได้กรอก
จะเขียนโคดยังไงค่ะใครรู้ช่วยตอบหน่อยนะค่ะขอบคูณล่วงหน้าค่ะ
Sat 7 Jul 2007 18:12:30
Sun 8 Jul 2007 14:50:44
อยากทราบว่าจะนำฐานข้อมูล sql มาแสดงใน combobox ยังไง ใน VB6
Sun 8 Jul 2007 14:59:27
อยากทราบว่าจะนำฐานข้อมูล sql มาแสดงใน combobox ยังไง ใน VB6

















