|
|
|
รบกวนดูบรรทัดนี้ให้หน่อยนะครับ OnChange="window.location คือไม่ต้องการให้ refresh ทั้ง page |
|
|
|
|
|
|
|
ใช้ ajax ซิครับ
|
|
|
|
|
Date :
2014-07-17 14:22:43 |
By :
progamer2000 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อธิบายซักนิดนะครับ คำสั่ง window.location.href จะเป็นการ เปลี่ยน url ของ window browser
มันเป็นคำสั่งที่ให้เปลี่ยนทั้งหน้าอยู่แล้วครับ
แต่เมื่อเปลี่ยนหน้าแล้ว ต้องการให้ แสดงข้อมูลเก่าบางส่วน ไม่ต้องการให้เปลี่ยนข้อมูลทั้งหมดใช่ไหมครับ
และของเก่าที่คุณมีปัญหาคือ จะมีข้อมูลที่คล้ายกัน เป็น Select 4 box ใช่ไหมครับ ต้องขอโทษด้วยที่ไม่ได้เข้ามาตอบเลยนะครับ
พอดี มีงานเข้าแบบเร่งด่วน เลยไม่ได้มาตอบให้ใครเลยอะครับ
ซักครู่นะครับ เดี๋ยวมาต่อนะครับ ซัก 1 ชม. ขอโทษด้วยครับมีธุระด่วนพอดีต้องออกไปข้างนอก
|
|
|
|
|
Date :
2014-07-17 14:24:30 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
// อ้างอิง โค๊ดเก่า มายังไงก็ไม่รู้
mysql_query("SET NAMES tis620"); // เซทที่ หัวหลัง connect_db อันเดียวก็พอครับ ไม่ต้องทำทุก table
// ยกเว้น table คุณสร้าง สะเปะสะปะ มี ทั้ง tis620 utf8 ฯลฯ
?><!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>
<body>
<script language="javascript" type="text/javascript">
function newUrl( individually){
// individually 0-4 Froms document.forms
var item1 = document.frmMain1.imName1.value;
var item2 = document.frmMain2.imName2.value;
var item3 = document.frmMain3.imName3.value;
var item4 = document.frmMain4.imName4.value;
location.href='?item1='+item1+'&item2='+item2+'&item3='+item3+'&item4='+item4;
// แต่ถ้าเกี่ยวข้องกัน มี Parent childnode
switch(individually){
case 1: location.href='?item1='+item1; break;
case 2: location.href='?item1='+item1+'&item2='+item2; break;
case 3: location.href='?item1='+item1+'&item2='+item2+'&item3='+item3; break;
default:
location.href='?item1='+item1+'&item2='+item2+'&item3='+item3+'&item4='+item4;
}
}
</script>
<form action="page.php" method="post" name="frmMain2">
List Menu2
<select name="lmName2" OnChange="newUrl(2)">
<option value=""><-- Please Select Item --></option>
<?php
$strSQL = "SELECT cdist FROM district ORDER BY cdist ASC"; // ใช้ ฟีลด์เดียว อย่าอ้าง " * " เปลือง Bandwidth
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_assoc($objQuery)){
$sel=($_REQUEST["item2"] == $objResult["cdist"]? 'SELECTED' : '');
echo "<OPTION VALUE='$objResult[cdist]' $sel >$objResult[cdist]</OPTION>\n";
}
mysql_free_result($objQuery);
?>
</select>
<?php
if($_REQUEST["item2"] != ""){
// "ไม่รู้ว่า code ตรงนี้ไว้ทำอะไร เกี่ยวข้องยังไง
$strSQL = "SELECT cfmdist ,ctodist ,cprice as cpriceb FROM price WHERE cfmdist = '".$_REQUEST["item1"]."' and ctodist = '".$_REQUEST["item2"]."' ";
$objQuery = mysql_query($strSQL);
$objResult3 = mystql_fetch_array($objQuery);
$cpriceb=$objResult3['cpriceb'];
}else $cpriceb='';
echo "<input name=txtName2 type=text value='$cpriceb' />"; // ไม่รู้ว่า Text Box ตรงนี้ไว้ทำอะไร
?>
</form>
<form action="page.php" method="post" name="frmMain3">
List Menu3
<select name="lmName3" OnChange="newUrl(3)">
<option value=""><-- Please Select Item --></option>
<?php
$strSQL = "SELECT cdist FROM district ORDER BY cdist ASC";
// แล้ว TABLE frmMain3 มันใช้อันเดียวกับ frmMain2 หรือเปล่า เพราะมันเหมือนกัน
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery)){
$sel=$_REQUEST["item3"] == $objResult["cdist"]? 'SELECTED' : '';
echo "<OPTION VALUE='$objResult[cdist]' $sel >$objResult[cdist]</OPTION>\n";
}
?>
</select>
<?php
if($_REQUEST["item3"] != ""){
// query ตรงนี้ ไม่รู้ว่าไว้ทำอะไร
$strSQL = "SELECT cfmdist ,ctodist ,cprice as cpricec FROM price WHERE cfmdist = '".$_REQUEST["item2"]."' and ctodist = '".$_REQUEST["item3"]."' ";
$objQuery = mysql_query($strSQL);
$objResult4 = mysql_fetch_array($objQuery);
$cpriceb=$objResult3['cpricec'];
}else $cpricec='';
echo "<input name=txtName3 type=text value='$cpricec' />";
?>
</form>
</body>
</html>
|
|
|
|
|
Date :
2014-07-17 15:16:02 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพิ่งเห็นคห 4 น่าจะประยุกต์ไปใช้ได้แล้วนะครับ ทำแบบเดียวกันครับ onchange="newUrl()" แบบเดียวกันครับ
ลักษณะการคิวรี่ ก็แบบเดียวกัน กับ frmMain2 - 3
|
|
|
|
|
Date :
2014-07-17 15:20:09 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : Chaidhanan เมื่อวันที่ 2014-07-17 15:20:09
รายละเอียดของการตอบ ::
อันนี้ Database ครับ มี 2 table
... ... table district
Field
id cdist
1 คลองเตย
2 คลองสาน
3 คลองสามวา
4 คันนายาว
5 จตุจักร
6 จอมทอง
7 ดอนเมือง
8 ดินแดง
9 ดุสิต
10 ตลิ่งชัน
11 ทวีวัฒนา
12 ทุ่งครุ
13 ธนบุรี
table price
field
id cfmdist ctodist price
1 คลองเตย คลองเตย 161
2 คลองเตย คลองสาน 198
3 คลองเตย คลองสามวา 377
4 คลองเตย คันนายาว 284
5 คลองเตย จตุจักร 235
6 คลองเตย จอมทอง 222
7 คลองเตย ดอนเมือง 358
8 คลองเตย ดินแดง 185
9 คลองเตย ดุสิต 198
ขอบคุณครับ
|
|
|
|
|
Date :
2014-07-17 15:32:27 |
By :
jay |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
mysql_connect('localhost', 'test', 'test');
mysql_select_db('test');
mysql_query("SET NAMES tis620"); // เซทที่ หัวหลัง connect_db อันเดียวก็พอครับ ไม่ต้องทำทุก table
// ยกเว้น table คุณสร้าง สะเปะสะปะ มี ทั้ง tis620 utf8 ฯลฯ
///////////////////////////////////////////////////////////
function getDistrict($m_slc){
global $price_list; $price_list=array();
$strSQL = "SELECT * FROM price where cfmdist='$m_slc' ORDER BY ctodist";
$rs = mysql_query($strSQL); $price=0;
while($ro = mysql_fetch_assoc($rs)) $price_list[$ro['ctodist']]=$ro; mysql_free_result($rs);
}
///////////////////////////////////////////////////////////
function getOption($slc, $pl){
$txt='';
foreach($pl as $key=>$ro){
$sel=($slc== $ro["ctodist"]? 'SELECTED' : '');
$txt .= "<OPTION VALUE='$ro[ctodist]' $sel >$ro[ctodist]</OPTION>\n";
} mysql_free_result($rs);
return $txt;
}
///////////////////////////////////////////////////////////
function district_js($pl){
$txt='var district=Array()'."\n";
foreach($pl as $key=>$ro){ $txt .= "district['$ro[ctodist]']=$ro[price];\n"; }
return $txt;
}
///////////////////////////////////////////////////////////
$mainSelect=isset($_REQUEST['mainSelect'])? $_REQUEST['mainSelect'] : '';
getDistrict($mainSelect);
$mainOption='';
$strSQL = "SELECT cdist FROM district ORDER BY cdist ASC"; // ใช้ ฟีลด์เดียว อย่าอ้าง " * " เปลือง Bandwidth
$rs = mysql_query($strSQL);
while($ro = mysql_fetch_assoc($rs)){
$sel=($mainSelect == $ro["cdist"]? 'SELECTED' : '');
$mainOption .= "<OPTION VALUE='$ro[cdist]' $sel >$ro[cdist]</OPTION>\n";
}
mysql_free_result($rs);
$ttl=0;
if($mainSelect){
for ($i=1; $i<5; $i++){
$m='slc'.$i;
$$m=$_REQUEST[$m];
$ttl += $price_list[$$m]['price'];
}
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
?><!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>
<body>
<script language="javascript" type="text/javascript">
<?php echo district_js($price_list); ?>
function getPrice(vl, id){
var prz=document.frmMain['price'+id];
ttl += district[vl] - prz.value;
document.getElementById('ttl').innerHTML = ttl;
prz.value=district[vl];
}
var ttl=<?php echo $ttl; ?>;
</script>
<form action="" method="post" name="frmMain">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td>เขต <select name="mainSelect" OnChange="this.form.submit()">
<option value=""><-- Please Select Item --></option><?php echo $mainOption; ?>
</select>
</td><td rowspan="5"><center> รวมค่าบริการ <label id="ttl"><?php echo $ttl; ?></label> บาท <br />
<input type="submit" value="Save" /></center>
</td></tr>
<tr><td>จุด 1<select id="slc1" OnChange="getPrice( this.value, 1)" style="width: 150px" >
<option value="-"><-- Please Select Item --></option><?php echo getOption($im1, $price_list); ?>
</select><input name="price1" type="text" value="<?php echo $price_list[$im1]['price'];?>" style="width: 60px; text-align: right" /></td></tr>
<tr><td>จุด 2<select id="slc2" OnChange="getPrice( this.value, 2)" style="width: 150px" >
<option value="-"><-- Please Select Item --></option><?php echo getOption($im2, $price_list); ?>
</select><input name="price2" type="text" value="<?php echo $price_list[$im2]['price'];?>" style="width: 60px; text-align: right"/></td></tr>
<tr><td>จุด 3<select id="slc3" OnChange="getPrice( this.value, 3)" style="width: 150px" >
<option value="-"><-- Please Select Item --></option><?php echo getOption($im3, $price_list); ?>
</select><input name="price3" type="text" value="<?php echo $price_list[$im3]['price'];?>" style="width: 60px; text-align: right"/></td></tr>
<tr><td>จุด 4<select id="slc4" OnChange="getPrice( this.value, 4)" style="width: 150px" >
<option value="-"><-- Please Select Item --></option><?php echo getOption($im4, $price_list); ?>
</select><input name="price4" type="text" value="<?php echo $price_list[$im4]['price'];?>" style="width: 60px; text-align: right"/></td></tr>
</table>
</form>
</body>
</html>
ลองดูครับ
|
ประวัติการแก้ไข 2014-07-17 19:18:36
|
|
|
|
Date :
2014-07-17 19:17:13 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|