|
|
|
สอบถามการจำค่า select เมื่อ edit ข้อมูลจังหวัด แล้วค่า select จังหวัด ไม่จำค่าค่ะ |
|
|
|
|
|
|
|
หน้า select จังหวัดค่ะ
Code (PHP)
<?php
//ค่าที่ได้รับมาจากการ Submit
$play_province = $_POST[play_province];
$play_amphur = $_POST[play_amphur];
$play_province = $_REQUEST[play_province];
$play_amphur = $_REQUEST[play_amphur];
echo $_REQUEST[PROVINCE_ID];
echo '<span id="PROVINCE_ID">';
echo "<label for=\"play_province\">จังหวัด :</label><select name=\"play_province\" id=\"play_province\" onchange=\"dochange('PROVINCE_ID')\">\n";
echo "<option value=\"$play_province\">--------------</option> \n";
echo "</select></span>\n";
echo '<span id="AMPHUR_ID">';
echo "<label for=\"AMPHUR_ID\">อำเภอ :</label><select name=\"play_amphur\" id=\"play_amphur\" onchange=\"dochange('AMPHUR_ID')\">\n";
echo "<option value=\"$AMPHUR_ID\"></option> \n";
echo "</select></span>\n";
echo"<br/><br/>";
?>
<script type="text/javascript">
//AJAX
function Inint_AJAX()
{
try
{
return new ActiveXObject( "Msxml2.XMLHTTP" );
}
catch ( e )
{
};
try
{
return new ActiveXObject( "Microsoft.XMLHTTP" );
}
catch ( e )
{
};
try
{
return new XMLHttpRequest();
}
catch ( e )
{
};
alert( "XMLHttpRequest not supported" );
return null;
};
function dochange( obj )
{
var req = Inint_AJAX();
var play_province = document.getElementById( 'play_province' ).value;
//var play_district = document.getElementById( 'play_district' ).value;
if ( obj && obj.name == 'PROVINCE_ID' ) //เมื่อทำการเลือที่จังหวัดมา ให้เคลียร์ค่าอำเภอ
{
var AMPHUR_ID = "";
}
else //เลือกรายการอื่น
{
var play_amphur = document.getElementById( 'play_amphur' ).value;
};
var data = "play_province=" + play_province + "&play_amphur=" + play_amphur ;
req.onreadystatechange = function()
{
if ( req.readyState == 4 )
{
if ( req.status == 200 )
{
var datas = eval( '(' + req.responseText + ')' ); // JSON
document.getElementById( 'PROVINCE_ID' ).innerHTML = datas[0].play_province;
document.getElementById( 'AMPHUR_ID' ).innerHTML = datas[0].play_amphur;
//document.getElementById( 'play_districtDiv' ).innerHTML = datas[0].play_district;
};
};
};
req.open( "post" , "province.php" , true ); //สร้าง connection
req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" ); // set Header
req.send( data ); //ส่งค่า
};
//โหลดครั้งแรก
window.onload = function()
{
dochange( '' );
};
</script>
|
|
|
|
|
Date :
2012-02-20 12:36:15 |
By :
AewTre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า ดึงข้อมูลจังหวัด มาจาก database ค่ะ
Code (PHP)
<?php
header("content-type: text/html; charset=utf-8");
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
$PROVINCE_ID = $_POST[PROVINCE_ID];
$AMPHUR_ID = $_POST[AMPHUR_ID];
//$play_district = $_POST[play_district];
include ('config.php');
// ติดต่อฐานข้อมูล
mysql_connect($config[db_server], $config[db_username], $config[db_password]);
mysql_query("SET NAMES utf8");
mysql_select_db($config[db_name]); // เลือกฐานข้อมูล
//ให้คืนค่าจังหวัดไว้เป็นอันดับแรก
$sql = "SELECT PROVINCE_ID, PROVINCE_NAME FROM ".$prefix."play_province order by PROVINCE_NAME ASC";
$result = mysql_query($sql);
echo "[{\"PROVINCE_ID\":\"";
echo "<label for='play_province'>จังหวัด :</label>";
echo "<select name='play_province' id='play_province' onchange='dochange(this)'>";
echo "<option value='0'>--กรุณาเลือกจังหวัด--</option>";
while ($fetcharr = mysql_fetch_array($result)) {
$PROVINCE_ID = $fetcharr[PROVINCE_ID];
$PROVINCE_NAME = $fetcharr[PROVINCE_NAME];
echo "<option value='$PROVINCE_ID'";
if ($PROVINCE_ID == $PROVINCE_ID) //เลือกจังหวัดที่เลือกไว้
{
echo " selected='selected'";
}
echo ">$PROVINCE_NAME</option>";
}
echo "</select>\",\"AMPHUR_ID\":\"";
echo "<label for='play_amphur'>อำเภอ :</label>";
echo "<select name='play_amphur' id='play_amphur' onchange='dochange(this)'>";
//ถ้ามีการเลือกจังหวัดมาแล้วให้แสดงอำเภอต่อ
if ($PROVINCE_ID != "0" && $PROVINCE_ID != "") {
echo "<option value='0'>--กรุณาเลือกอำเภอ--</option>";
$sql = "SELECT AMPHUR_ID, AMPHUR_NAME FROM ".$prefix."play_amphur WHERE PROVINCE_ID='$PROVINCE_ID'";
$result = mysql_query($sql);
while ($fetcharr = mysql_fetch_array($result)) {
$AMPHUR_ID = $fetcharr[AMPHUR_ID];
$AMPHUR_NAME = $fetcharr[AMPHUR_NAME];
echo "<option value='$AMPHUR_ID'";
if ($AMPHUR_ID == $AMPHUR_ID) //เลือกอำเภอที่เลือกไว้
{
echo " selected='selected'";
}
echo ">$AMPHUR_NAME</option>";
}
} else {
echo "<option value=''></option>";
}
echo "</select>\"}]";
mysql_close();
?>
|
|
|
|
|
Date :
2012-02-20 12:39:44 |
By :
AewTre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
select อีกรอบครับโดยการดึงข้อมูลจากดาต้าเบสที่ลงไป
|
|
|
|
|
Date :
2012-02-20 13:17:56 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$PROVINCE_ID = $_POST[PROVINCE_ID];
$AMPHUR_ID = $_POST[AMPHUR_ID];
.
.
.
.
.
while ($fetcharr = mysql_fetch_array($result)) {
$PROVINCE_ID = $fetcharr[PROVINCE_ID];
$PROVINCE_NAME = $fetcharr[PROVINCE_NAME];
echo "<option value='$PROVINCE_ID'";
if ($PROVINCE_ID == $PROVINCE_ID) //เลือกจังหวัดที่เลือกไว้
{
echo " selected='selected'";
}
echo ">$PROVINCE_NAME</option>";
}
$PROVINCE_ID == $PROVINCE_ID
ตัวแปร ใช้ชื่อซ้ำนิ ครับ
แบบนี้เท่ากับว่า มันเปลี่ยนค่า ทุกครั้งที่ loop หรือเปล่า
ลองแก้ ให้ชื่อต่างกันดูครับ ระหว่าง ค่าที่ได้รับมาจากการ $_POST กับ ค่าที่ ดึงมาจาก Database
Code (PHP)
if($_POST[PROVINCE_ID] == $fetcharr[PROVINCE_ID]) echo "selected";
|
|
|
|
|
Date :
2012-02-20 13:30:29 |
By :
Likito |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะค่ะ
ลองแล้วค่ะ ยังไม่ได้เลย T_T
ไม่ทราบว่าเปลี่ยนแบบนี้หรือเปล่าค่ะ ช่วยดูให้หน่อยนะค่ะ
Code (PHP)
$PROVINCE_ID = $_POST[PROVINCE_ID];
$AMPHUR_ID = $_POST[AMPHUR_ID];
.
.
.
.
.
while ($fetcharr = mysql_fetch_array($result)) {
$PROVINCE_ID = $fetcharr[PROVINCE_ID];
$PROVINCE_NAME = $fetcharr[PROVINCE_NAME];
echo "<option value='$PROVINCE_ID'";
if($_POST[PROVINCE_ID] == $fetcharr[PROVINCE_ID]) echo "selected";
{
echo " selected='selected'";
}
echo ">$PROVINCE_NAME</option>";
}
ผลลัพธ์ที่ได้ค่ะ
แต่ค่าที่ select ออกมาเมื่อ edit แล้วยังวิ่งไป text ตัวสุดท้ายเลยค่ะ
|
|
|
|
|
Date :
2012-02-20 15:56:43 |
By :
AewTre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาออกก่อนดีกว่าครับ
Code (PHP)
while ($fetcharr = mysql_fetch_array($result)) {
$PROVINCE_ID = $fetcharr[PROVINCE_ID];
$PROVINCE_NAME = $fetcharr[PROVINCE_NAME];
echo "<option value='$PROVINCE_ID'";
if($_POST[PROVINCE_ID] == $fetcharr[PROVINCE_ID]) echo "selected"; // echo "selected"; ?????
{
echo " selected='selected'";
}
echo ">$PROVINCE_NAME</option>";
}
แต่ถ้าไม่หายจริงๆ รันดูแล้ว คลิกขวา view source แล้วดูที่ ผลที่ได้ตอนออกมาเป็น html นะครับ
|
|
|
|
|
Date :
2012-02-20 16:05:05 |
By :
13eachz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกๆคำตอบเลยค่ะ
ใช่ค่ะเวลาจะ edit ข้อมูล
แล้วข้อมูลที่เป็น select menu นั้น ต้องการให้มัน แสดงค่า default เป็นค่า ที่เก็บไว้อยู่ใน database ค่ะ แต่ตอนนี้ยังไม่ได้เลยค่ะ
ส่วนวิธีที่คุณ Likito ใช้นั้น ไม่สามารถเอามาใช้กับแบบนี้ได้ค่ะ ขอบคุณมากนะค่ะ
Code (PHP)
<select>
<option>AAA</option>
<option>BBB</option>
<option selected>CCC</option>
</select>
คือจะจำค่าที่ selected ของ option นั้น
ลองเขียนแบบนี้ก็ยังไม่ได้ค่ะ ช่วยดูให้หน่อยนะค่ะ คือ
select ค่าของ table province (จังหวัด) ออกมาโชว์ แล้วทำการ select อีกรอบโดยการดึงข้อมูลจาก database table event (ที่เก็บข้อมูล)ลงไป และทำการเรียกข้อมูล โดยทำการเปรียบเทียบว่า table ที่เก็บข้อมูลกับ table จังหวัด ตรงกันหรือเปล่า ถ้าตรงกันให้เรียกค่าที่เก็บใน database ออกมาโชว์ โดยโชว์ค่าชื่อ PROVINCE_NAME ของtable province ค่ะ
Code (PHP)
<?php
header("content-type: text/html; charset=utf-8");
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
$play_province = $_POST[play_province];
$play_amphur = $_POST[play_amphur];
$play_district = $_POST[play_district];
include ('config.php');
// ติดต่อฐานข้อมูล
mysql_connect($config[db_server], $config[db_username], $config[db_password]);
mysql_query("SET NAMES utf8");
mysql_select_db($config[db_name]); // เลือกฐานข้อมูล
//ให้คืนค่าจังหวัดไว้เป็นอันดับแรก
$sql = "SELECT PROVINCE_ID, PROVINCE_NAME FROM play_province order by PROVINCE_NAME ASC";
$sql1 = "SELECT * FROM play_event WHERE id='".$_GET['id']."' ";
$result = mysql_query($sql);
$result1 = mysql_query($sql1);
$data=mysql_fetch_array($result1);
echo "[{\"play_province\":\"";
echo "<label for='play_province'>จังหวัด :</label>";
echo "<select name='play_province' id='play_province' onchange='dochange(this)'>";
echo "<option value='0'>--กรุณาเลือกจังหวัด--</option>";
while ($fetcharr = mysql_fetch_array($result)) {
$PROVINCE_ID = $fetcharr[PROVINCE_ID];
$PROVINCE_NAME = $fetcharr[PROVINCE_NAME];
if($data[PROVINCE_ID] == $fetcharr[PROVINCE_ID]){
echo "<option value='$PROVINCE_ID' selected>$PROVINCE_NAME</option>";
else
echo "<option value='$PROVINCE_ID' >$PROVINCE_NAME</option>";
}
}
echo "</select>\",\"play_amphur\":\"";
echo "<label for='play_amphur'>อำเภอ :</label>";
echo "<select name='play_amphur' id='play_amphur' onchange='dochange(this)'>";
//ถ้ามีการเลือกจังหวัดมาแล้วให้แสดงอำเภอต่อ
if ($play_province != "0" && $play_province != "") {
echo "<option value='0'>--กรุณาเลือกอำเภอ--</option>";
$sql = "SELECT AMPHUR_ID, AMPHUR_NAME FROM ".$prefix."play_amphur WHERE PROVINCE_ID='$play_province'";
$result = mysql_query($sql);
while ($fetcharr = mysql_fetch_array($result)) {
$AMPHUR_ID = $fetcharr[AMPHUR_ID];
$AMPHUR_NAME = $fetcharr[AMPHUR_NAME];
echo "<option value='$AMPHUR_ID'";
if ($play_amphur == $AMPHUR_ID) //เลือกอำเภอที่เลือกไว้
{
echo " selected='selected'";
}
echo ">$AMPHUR_NAME</option>";
}
} else {
echo "<option value=''>--------------</option>";
}
echo "</select>\",\"play_district\":\"";
echo "<label for='play_district'>ตำบล :</label>";
echo "<select name='play_district' id='play_district' onchange='dochange(this)'>";
//ถ้ามีการเลือกอำเภอมาแล้วให้แสดงตำบลต่อ
if ($play_amphur != "0" && $play_amphur != "") {
echo "<option value='0'>--กรุณาเลือกตำบล--</option>";
$sql = "SELECT DISTRICT_ID, DISTRICT_NAME FROM ".$prefix."play_district WHERE AMPHUR_ID='$play_amphur'";
$result = mysql_query($sql);
while ($fetcharr = mysql_fetch_array($result)) {
$DISTRICT_ID = $fetcharr[DISTRICT_ID];
$DISTRICT_NAME = $fetcharr[DISTRICT_NAME];
echo "<option value='$DISTRICT_ID'";
if ($play_district == $DISTRICT_ID) //เลือกตำบลที่เลือกไว้
{
echo " selected='selected'";
}
echo ">$DISTRICT_NAME</option>";
}
} else {
echo "<option value=''>--------------</option>";
}
echo "</select>\"}]";
mysql_close();
?>
|
|
|
|
|
Date :
2012-02-22 10:41:36 |
By :
AewTre |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|