สอบถามผู้รู้หน่อยครับ เรื่อง เพิ่มเเถว + dependent listmenu
มันเป็นวิธีการ escape ข้อความ ให้อยู่ในรูปที่โปรแกรมสามารถแปลได้
เช่น $a="data"; แบบนี้ธรรมดา แต่ถ้าเราต้องการเพิ่ม double quote เข้าไปใน text ด้วยจะทำอย่างไร
ถ้าเราเขียนแบบนี้ $a = "da"ta"; ตัวแปลโปรแกรมคงส่ง error ออกมาเพราะมันอ่านเป็นสองส่วน
"da" และ ta"; ซึ่งทำให้เกิดไวยกรณ์ที่ผิดลักษณะขึ้นมา
ดังนั้นเพื่อให้ โปรแกรมแปลได้ถูกต้องเลยมีการกำหนด อักขระพิเศษไว้นำหน้าอักขระพิเศษอีกที คือ backslashes \
จะได้รู้ว่า อักขระหลัง \ เป็นส่วนหนึ่งของข้อความ $a="da\"ta";
เมื่อ echo $a; จะได้ da"ta
Date :
2016-03-13 10:02:46
By :
Chaidhanan
ผมไปลองมาละครับ ติดปัญหาอย่างนึงคือ ตอน add เเถวใหม่ พอเลือกเสร็จเเล้วมันไม่ onchange ให้ครับ ผมคิดว่าเป็นเพราะ id ที่ ไม่ได้ +intLine เเก้ไขยังไงดีครับ
อันนี้เป็นโค้ดครับ
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("thailand");
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
$strSQL = "SELECT * FROM geography ORDER BY GEO_ID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<script language="javascript">
function CreateSelectOptionedu(ele)
{
var objSelect = document.getElementById(ele);
var Item = new Option("", "");
objSelect.options[objSelect.length] = Item;
var Item = new Option("1", "1");
objSelect.options[objSelect.length] = Item;
var Item = new Option("2", "2");
objSelect.options[objSelect.length] = Item;
var Item = new Option("3", "3");
objSelect.options[objSelect.length] = Item;
var Item = new Option("4", "4");
objSelect.options[objSelect.length] = Item;
}
function CreateSelectOptiongeo(ele)
{
var objSelect = document.getElementById(ele);
var Item = new Option("", "");
objSelect.options[objSelect.length] = Item;
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
var Item = new Option("<?php echo $objResult["GEO_NAME"];?>", "<?php echo $objResult["GEO_ID"];?>");
objSelect.options[objSelect.length] = Item;
<?
}
?>
}
function ListProvince(SelectValue)
{
frmMain.ddlProvince.length = 0
//*** Insert null Default Value ***//
var myOption = new Option('','')
frmMain.ddlProvince.options[frmMain.ddlProvince.length]= myOption
<?php
$intRows = 0;
$strSQL = "SELECT * FROM province ORDER BY PROVINCE_ID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
$intRows++;
?>
x = <?php echo $intRows;?>;
mySubList = new Array();
strGroup = <?php echo $objResult["GEO_ID"];?>;
strValue = "<?php echo $objResult["PROVINCE_ID"];?>";
strItem = "<?php echo $objResult["PROVINCE_NAME"];?>";
mySubList[x,0] = strItem;
mySubList[x,1] = strGroup;
mySubList[x,2] = strValue;
if (mySubList[x,1] == SelectValue){
var myOption = new Option(mySubList[x,0], mySubList[x,2])
frmMain.ddlProvince.options[frmMain.ddlProvince.length]= myOption
}
<?
}
?>
}
//**** List Province (End) ***//
function CreateSelectOptioneday(ele)
{
var objSelect = document.getElementById(ele);
var Item = new Option("", "");
objSelect.options[objSelect.length] = Item;
var Item = new Option("จันทร์", "mon");
objSelect.options[objSelect.length] = Item;
var Item = new Option("อังคาร", "tue");
objSelect.options[objSelect.length] = Item;
var Item = new Option("พุธ", "wed");
objSelect.options[objSelect.length] = Item;
var Item = new Option("พฤหัส", "thu");
objSelect.options[objSelect.length] = Item;
var Item = new Option("ศุกร์", "fri");
objSelect.options[objSelect.length] = Item;
var Item = new Option("เสาร์", "sat");
objSelect.options[objSelect.length] = Item;
var Item = new Option("อาทิตย์", "sun");
objSelect.options[objSelect.length] = Item;
}
function CreateSelectOptiontime(ele)
{
var objSelect = document.getElementById(ele);
var Item = new Option("", "");
objSelect.options[objSelect.length] = Item;
var Item = new Option("8.00", "8.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("8.30", "8.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("9.00", "9.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("9.30", "9.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("10.00", "10.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("10.30", "10.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("11.00", "11.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("11.30", "11.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("12.00", "12.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("12.30", "12.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("13.00", "13.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("13.30", "13.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("14.00", "14.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("15.30", "15.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("16.00", "16.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("16.30", "16.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("17.00", "17.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("17.30", "17.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("18.00", "18.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("18.30", "18.30");
objSelect.options[objSelect.length] = Item;
var Item = new Option("19.00", "19.00");
objSelect.options[objSelect.length] = Item;
var Item = new Option("19.30", "19.30");
objSelect.options[objSelect.length] = Item;
}
function CreateNewRow()
{
var intLine = parseInt(document.frmMain.hdnMaxLine.value);
intLine++;
var theTable = document.getElementById("tbExp");
var newRow = theTable.insertRow(theTable.rows.length)
newRow.id = newRow.uniqueID
var newCell
//*** Column 1 ***//
newCell = newRow.insertCell(0);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><INPUT TYPE=\"TEXT\" SIZE=\"5\" NAME=\"txtgroup_"+intLine+"\" ID=\"txtgroup_"+intLine+"\" VALUE=\"\"></center>";
//*** Column 2 ***//
newCell = newRow.insertCell(1);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"selfac_"+intLine+"\" ID=\"selfac_"+intLine+"\" onChange = \"ListProvince(this.value)\"></SELECT></center>";
//*** Column 3 ***//
newCell = newRow.insertCell(2);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"selmaj_"+intLine+"\" ID=\"ddlProvince\"></SELECT></center>";
//*** Column 4 ***//
newCell = newRow.insertCell(3);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seledu_"+intLine+"\" ID=\"seledu_"+intLine+"\"></SELECT></center>";
//*** Column 5 ***//
newCell = newRow.insertCell(4);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><INPUT TYPE=\"TEXT\" SIZE=\"5\" NAME=\"txtnum_"+intLine+"\" ID=\"txtnum_"+intLine+"\" VALUE=\"\"></center>";
//*** Column 6 ***//
newCell = newRow.insertCell(5);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seldaytheo_"+intLine+"\" ID=\"seldaytheo_"+intLine+"\"></SELECT></center>";
//*** Column 7 ***//
newCell = newRow.insertCell(6);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seltheos_"+intLine+"\" ID=\"seltheos_"+intLine+"\"></SELECT></center>";
//*** Column 8 ***//
newCell = newRow.insertCell(7);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seltheoe_"+intLine+"\" ID=\"seltheoe_"+intLine+"\"></SELECT></center>";
//*** Column 9 ***//
newCell = newRow.insertCell(8);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seldaydo_"+intLine+"\" ID=\"seldaydo_"+intLine+"\"></SELECT></center>";
//*** Column 10 ***//
newCell = newRow.insertCell(9);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seldos_"+intLine+"\" ID=\"seldos_"+intLine+"\"></SELECT></center>";
//*** Column 11 ***//
newCell = newRow.insertCell(10);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><SELECT NAME=\"seldoe_"+intLine+"\" ID=\"seldoe_"+intLine+"\"></SELECT></center>";
//*** Column 5 ***//
newCell = newRow.insertCell(11);
newCell.id = newCell.uniqueID;
newCell.setAttribute("className", "css-name");
newCell.innerHTML = "<center><INPUT TYPE=\"TEXT\" SIZE=\"5\" NAME=\"txtweek_"+intLine+"\" ID=\"txtweek_"+intLine+"\" VALUE=\"\"></center>";
//*** Create Option ***//
CreateSelectOptionedu("seledu_"+intLine)
CreateSelectOptiongeo("selfac_"+intLine)
CreateSelectOptioneday("seldaytheo_"+intLine)
CreateSelectOptiontime("seltheos_"+intLine)
CreateSelectOptiontime("seltheoe_"+intLine)
CreateSelectOptioneday("seldaydo_"+intLine)
CreateSelectOptiontime("seldos_"+intLine)
CreateSelectOptiontime("seldoe_"+intLine)
document.frmMain.hdnMaxLine.value = intLine;
}
function RemoveRow()
{
intLine = parseInt(document.frmMain.hdnMaxLine.value);
if(parseInt(intLine) > 1)
{
theTable = document.getElementById("tbExp");
theTableBody = theTable.tBodies[0];
theTableBody.deleteRow(intLine);
intLine--;
document.frmMain.hdnMaxLine.value = intLine;
}
}
</script>
<body Onload="CreateNewRow();">
<form method="post" name="frmMain" action="teaaddsub.php">
<table border="1" id="tbExp">
<tr>
<td width = "80"><div align="center">กลุ่ม</div></td>
<td width = "150"><div align="center">คณะ</div></td>
<td width = "150"><div align="center">สาขา</div></td>
<td width = "80"><div align="center">ชั้นปี</div></td>
<td width = "80"><div align="center">จำนวนนักศึกษา</div></td>
<td width = "80"><div align="center">ทฤษฎีวัน</div></td>
<td width = "100"><div align="center">ทฤษฎีเวลาเริ่ม</div></td>
<td width = "100"><div align="center">ทฤษฎีเวลาจบ</div></td>
<td width = "80"><div align="center">ปฏิบัติ</div></td>
<td width = "100"><div align="center">ปฏิบัติเวลาเริ่ม</div></td>
<td width = "100"><div align="center">ปฏิบัติเวลาจบ</div></td>
<td width = "100"><div align="center" >จำนวนสัปดาห์/ภาคเรียน</div></td>
</tr>
</table>
<input type="hidden" name="hdnMaxLine" value="0">
<input name="btnAdd" type="button" id="btnAdd" value="add" onClick="CreateNewRow();">
<input name="btnDel" type="button" id="btnDel" value="delete" onClick="RemoveRow();">
<input type="submit" name="submitTeam" id="submitTeam" value="Submit">
</form>
</body>
</html>
ประวัติการแก้ไข 2016-03-14 02:57:22
Date :
2016-03-14 02:39:42
By :
holyshadow123
ลองเปลี่ยนวิธีเขียนใหม่ เพื่อไม่ให้สับสนเครื่อง quote ให้เปิดด้วย singlequote แทน
209.newCell.innerHTML = "<center><INPUT TYPE=\"TEXT\" SIZE=\"5\" NAME=\"txtgroup_"+intLine+"\" ID=\"txtgroup_"+intLine+"\" VALUE=\"\"></center>";
แก้เป็น
Code (JavaScript)
newCell.innerHTML = '<center><INPUT TYPE="TEXT" SIZE="5" NAME="txtgroup_'+intLine+'" ID="txtgroup_'+intLine+'" VALUE=""></center>';
และตอนนี้ HTML5 มันซัพพอร์ต เกือบหมดทุก browser แล้ว ไม่ใช้มันล่ะครับ
doctype ก็เขียนสั้นๆ
Code (JavaScript)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
แก้เป็น
Code (JavaScript)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
ประวัติการแก้ไข 2016-03-14 06:55:06
Date :
2016-03-14 06:54:22
By :
Chaidhanan
ผมไม่รู้ function นี้มันทำอะไร
function ListProvince(SelectValue)
ส่วน object สีแดง อ้างอิงแบบนี้ไม่ได้
frmMain.ddlProvince .length = 0
หลัง frmMain ต้องอ้างอิงด้วย attribute Name เท่านั้น
หรือเปลี่ยน เปลี่ยน ID เป็น class
อ้างอิงด้วย ID ต้องอ้างอิงเป็น unique เท่านั้น ณ tag หนึ่งๆ จะมี ID เหมือนกันไม่ได้
และไม่สามารถอ้างอิง id ในลักษณะ array ไม่ได้
การอ้างอิง class
Code (JavaScript)
var myclass = document.getElementsByClassName('ddlProvince');
alert( myclass.length );
var v = myclass[0].value;
alert(v);
Date :
2016-03-14 15:12:08
By :
Chaidhanan
ค่าใน ฟังก์ชั่น onchange อย่าส่งเป็น ค่ามาครับ เพราะมันเป็น object array มันไม่รู้ว่าเป็นอันไหนส่งมา
ให้ส่งมาทั้ง object
Code (JavaScript)
onchange="fnc( this )"
function fnc( obj ){
var val = obj.value;
}
Date :
2016-03-14 16:11:42
By :
Chaidhanan
Load balance : Server 04