คือผมมีปัญหาเรื่องใช้ Function Select ข้อมูล กับการโพสข้อมูล
คือผมทำแล้วเหมือนจะผิดแน่นอนอยากรู้ว่า
ใน 1 หน้า ผมจะใช้ 2 function ยังไง ช่วยดูให้ทีครับ ตรงที่แทรกโครตแล้วมันผิดผมจะคุมพื้นสีชมพูใว้ครับ
ผิดที่นี้คือโปรแกรมมันไปรันไปหน้าอื่น เพราะเสริม function selection มา ไม่ถึงกับเป็นฟังก์ชั่นนะครับ
ประมาณว่า โพสข้อมูลลง DB ที่มีทั้งข้อมูลแบบโพสธรรมดา กับแบบ selection
คือถ้าตรงนี้ผมทำได้มันจะแก้ปัญหาที่ผมทำหลายๆจุดได้ด้วยอะครับ ช่วยทีนะครับ
<html>
<head>
<title> </title>
</head>
<link href="styles.css" rel="stylesheet" type="text/css" />
<body>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax() {
HttPRequest = false;
if (window.XMLHttpRequest) {
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) {
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var value = ""; //อันนี้ผมเสริมมาครับจากของเดิมผม
var select = document.getElecmentById("myselect");
for(i=0 ; i<select.length ; i++) {
if(select.options[i].selected){
value += " " + select.options[i].value;
}
}
var url = 'registercorrect.php';
var pmeters = "mname=" + encodeURI( document.getElementById("mname").value) +
"&mlastname=" + encodeURI( document.getElementById("mlastname").value ) +
"&musername=" + encodeURI( document.getElementById("musername").value) +
"&mpassword=" + encodeURI( document.getElementById("mpassword").value ) +
"&cmpassword=" + encodeURI( document.getElementById("cmpassword").value ) +
"&memail=" + encodeURI( document.getElementById("memail").value );
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = 'registerfinish.php';
}
else
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
<body>
<form name="frmMain">
<div class="warning"> <h1>Welcome To Social Network </h1>
<span id="mySpan"></span></div>
<table width="600" border="0" height="400" align="center">
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">First Name</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="mname" id="mname" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Last Name</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="mlastname" id="mlastname" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Username</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="musername" id="musername" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Password</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="password" name="mpassword" id="mpassword" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Confirm Password</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="password" name="cmpassword" id="cmpassword" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Email</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="memail" id="memail" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr> // อันนี้อีกที่ครับ
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">SEX</div></th>
<th bgcolor="#eaf3fa" class="widget">
<select name="myselect">
<option value="Male">Male</option>
<option value="faMale">famale</option>
</select>
</th>
</tr>
</table>
<br>
<center><div class="buttons">
<button type="button" class="positive" name="btnRegister" id="btnRegister" OnClick="JavaScript:doCallAjax();">
<img src="images/apply.gif" alt=""/>
Click To Register
</button>
</div>
</form>
</body>
</html>
ใน 1 หน้า ผมจะใช้ 2 function ยังไง ช่วยดูให้ทีครับ ตรงที่แทรกโครตแล้วมันผิดผมจะคุมพื้นสีชมพูใว้ครับ
ผิดที่นี้คือโปรแกรมมันไปรันไปหน้าอื่น เพราะเสริม function selection มา ไม่ถึงกับเป็นฟังก์ชั่นนะครับ
ประมาณว่า โพสข้อมูลลง DB ที่มีทั้งข้อมูลแบบโพสธรรมดา กับแบบ selection
คือถ้าตรงนี้ผมทำได้มันจะแก้ปัญหาที่ผมทำหลายๆจุดได้ด้วยอะครับ ช่วยทีนะครับ
<html>
<head>
<title> </title>
</head>
<link href="styles.css" rel="stylesheet" type="text/css" />
<body>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax() {
HttPRequest = false;
if (window.XMLHttpRequest) {
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) {
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var value = ""; //อันนี้ผมเสริมมาครับจากของเดิมผม
var select = document.getElecmentById("myselect");
for(i=0 ; i<select.length ; i++) {
if(select.options[i].selected){
value += " " + select.options[i].value;
}
}
var url = 'registercorrect.php';
var pmeters = "mname=" + encodeURI( document.getElementById("mname").value) +
"&mlastname=" + encodeURI( document.getElementById("mlastname").value ) +
"&musername=" + encodeURI( document.getElementById("musername").value) +
"&mpassword=" + encodeURI( document.getElementById("mpassword").value ) +
"&cmpassword=" + encodeURI( document.getElementById("cmpassword").value ) +
"&memail=" + encodeURI( document.getElementById("memail").value );
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
if(HttPRequest.readyState == 3) // Loading Request
{
document.getElementById("mySpan").innerHTML = "Now is Loading...";
}
if(HttPRequest.readyState == 4) // Return Request
{
if(HttPRequest.responseText == 'Y')
{
window.location = 'registerfinish.php';
}
else
{
document.getElementById("mySpan").innerHTML = HttPRequest.responseText;
}
}
}
}
</script>
<body>
<form name="frmMain">
<div class="warning"> <h1>Welcome To Social Network </h1>
<span id="mySpan"></span></div>
<table width="600" border="0" height="400" align="center">
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">First Name</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="mname" id="mname" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Last Name</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="mlastname" id="mlastname" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Username</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="musername" id="musername" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Password</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="password" name="mpassword" id="mpassword" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Confirm Password</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="password" name="cmpassword" id="cmpassword" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr>
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">Email</div></th>
<th bgcolor="#eaf3fa" class="widget"><input type="text" name="memail" id="memail" size="20" bgcolor="#eaf3fa" class="widget"></th>
</tr>
<tr> // อันนี้อีกที่ครับ
<th width="200" bgcolor="#eaf3fa" class="widget">
<div align="left">SEX</div></th>
<th bgcolor="#eaf3fa" class="widget">
<select name="myselect">
<option value="Male">Male</option>
<option value="faMale">famale</option>
</select>
</th>
</tr>
</table>
<br>
<center><div class="buttons">
<button type="button" class="positive" name="btnRegister" id="btnRegister" OnClick="JavaScript:doCallAjax();">
<img src="images/apply.gif" alt=""/>
Click To Register
</button>
</div>
</form>
</body>
</html>
2.ผิดแน่ๆ ที่ select.length ตามข้อ 1
ดูจากโค้ดผมเดาว่า ต้องการค่า sex สามารถทำได้ดังนี้
var sex = document.getElementById('myselect').value;
การอ่านค่าของ select สามารถอ่านได้โดยใช้ value เลยครับ โดยไม่ต้องเขียนโค้ดเพิ่มเติมอีก
ไม่ได้แจ้งมาว่าจะเอาไปทำอะไร ที่ไหน ยังไง ก็เลยตอบไม่ถูก โค้ดที่เขียนให้ดูเป็นการอ่านค่าจาก select ถ้าต้องการนำไปใช้ที่ไหน ก็เอาโค้ดไปวางไว้แถวๆที่ต้องการได้เลยครับ อ่านค่าออกมาแล้วจะไปทำอะไรต่อ ก็แล้วแต่ความต้องการครับ...