|
|
|
ถามเรื่อง dropdownlist กับ function onchange หน่อยค่ะ T_T |
|
|
|
|
|
|
|
ทำแบบนี้ไม่ได้ครับ ถ้าจะให้แสดงอยู่หน้าเดียวกันต้องใช้ ajax ครับ
Code (PHP)
<html>
<head>
<title>place</title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(val) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
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 url = 'place.php';
var pmeters = 'province='+val
//var pmeters = 'myName='+document.getElementById("txtName").value+'&my2='; // 2 Parameters
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 == 4) // Return Request
{
document.getElementById('PlaceID').innerHTML=' <option value="" selected="selected">- เลือกสถานที่ท่องเที่ยว -</option>';
document.getElementById('PlaceID').innerHTML+=HttPRequest.responseText
}
}
}
</script>
<body>
<select name="Province" id="ProvinceID" onchange="doCallAjax(this.value)" style="width:200px">
<option value="0" selected = "selected">- เลือกจังหวัด -</option>
<?
$sql="select * from prodesc order by ProvinceID ASC";
$dbquery=mysql_db_query($dbname,$sql);
while($result=mysql_fetch_array($dbquery)){
if($Province_ID == $result[ProvinceID]){
?>
<option value="<?=$result[ProvinceID];?>">
<?=$result[ProvinceName];?>
</option>
<?
}
else{
?>
<option value="<?=$result[ProvinceID];?>">
<?=$result[ProvinceName];?>
</option>
<?
}
}
?>
</select>
<select name="Place" id="PlaceID" style="width:200px">
<option value="" selected="selected">- เลือกสถานที่ท่องเที่ยว -</option>
</select>
</body>
</html>
place.php(PHP)
<?
mysql_connect("xxx","xxxx","xxxx");
// ใส่คำสั่งการติดต่อกับฐานข้อมุลด้วย
if($_POST[province_id] != 0){
$sql_sub="select * from province_place where ProvinceID = '$_POST[province_id]'";
$dbquery_sub = mysql_db_query($dbname, $sql_sub);
while($result_sub=mysql_fetch_array($dbquery_sub)){
?>
<option value="<?=$result_sub[LaLong];?>">
<?=$result_sub[PlaceName];?>
</option>
<?
}
}
?>
|
|
|
|
|
Date :
2010-01-05 12:21:56 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณนะคะคุณ xbeginner01 เด๋วจะลองดูค่ะ ได้ผลเป็นไงแล้วจะมาบอกนะคะ
|
|
|
|
|
Date :
2010-01-05 14:49:22 |
By :
fairy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่ออกเลยค่ะ T.T
รบกวนถามหน่อยนะคะ คือเราไม่ค่อยรู้เรื่อง ajax กะ javascript อ่ะค่ะ ตรงส่วน place.php ที่ส่งตัวแปร province_id นี่มาจากไหนคะ แล้วตัวแปร pmeters ตรง 'province=' คืออะไรคะ
|
|
|
|
|
Date :
2010-01-06 11:33:25 |
By :
fairy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โทษทีครับ รีบพิมไปหน่อยไม่ได้ตรวจสอบครับ
เปลี่ยน $_POST[province_id] เป็น $_POST[province] ก็เนื่องมาจาก
var pmeters= "province="+xxx
มีการส่งตัวแปรเป็น province
HttPRequest.open('POST',url,true);
และมีการส่งแบบ post
ดังนั้น
ฝั่งที่เปิดจึงต้องรับตัวแปรเป็น $_POST[province] ครับ
|
|
|
|
|
Date :
2010-01-06 11:49:47 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณ xbeginner01 มากๆเลยค่ะ แต่เราลองแล้วยังไม่ได้ซักทีค่ะ ไม่ทราบว่าจะเกี่ยวกับ browser ที่เราใช้ด้วยรึป่าวคะ เราเลยลองใช้โค้ดนี้ดูค่ะ (ไปเอาโค้ดมาจากไหนจำไม่ได้แล้วค่ะ รุสึกว่าจะเป็นของเว็บนี้เหมือนกัน แก้ไปๆมาๆจนมั่วไปหมด )
Code (PHP)
<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
$objConnect = mysql_connect("localhost","root","1234") or die("Error Connect to Database");
$objDB = mysql_select_db("tourism");
mysql_query("SET NAMES UTF8");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ThaiCreate.Com ListMenu</title>
<script type="text/javascript">
//**** List Province (Start) ***//
function ListProvince(SelectValue)
{
frmMain.ddlProvince.length = 0
//*** Insert null Default Value ***//
var myOption = new Option('','')
frmMain.ddlProvince.options[frmMain.ddlProvince.length]= myOption
<?
$intRows = 0;
$strSQL = "SELECT * FROM province_place ORDER BY ProvinceID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$intRows = 0;
while($objResult = mysql_fetch_array($objQuery))
{
$intRows++;
?>
x = <?=$intRows;?>;
mySubList = new Array();
strGroup = <?=$objResult["ProvinceID"];?>;
strValue = "<?=$objResult["LaLong"];?>";
strItem = "<?=$objResult["PlaceName"];?>";
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) ***//
</script>
</head>
<form name="frmMain" action="" method="post">
Province
<select id="ddlGeo" name="ddlGeo" onChange = "ListProvince(this.value);">
<option selected value=""></option>
<?
$strSQL = "SELECT * FROM prodesc ORDER BY ProvinceID ASC ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
?>
<option value="<?=$objResult["ProvinceID"];?>"><?=$objResult["ProvinceName"];?></option>
<?
}
?>
</select>
Place
<select id="ddlProvince" name="ddlProvince" style="width:120px"></select>
</form>
</body>
</html>
<?
mysql_close($objConnect);
?>
แต่ว่ามันก็ยังไม่ได้อยู่ดีอ่ะค่ะ ไม่ทราบว่าติดตรงไหน ช่วยแนะนำหน่อยนะคะ
|
|
|
|
|
Date :
2010-01-10 16:23:17 |
By :
fairy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค้ดนี้อีกแล้ว
[email protected] แอดมาครับ คุยกันทางเอมดีกว่า
|
|
|
|
|
Date :
2010-01-10 18:21:49 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
|
|
|
|
|
Date :
2010-01-11 13:42:22 |
By :
fairy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กระทู้นานแล้ว แต่ก็คงมีประโยชน์แก้ผู้ค้นหา..(หวังเช่นนั้น)
เมื่อวาน ก็ลองนำของ thaicreate.com ไปแก้ แต่ไม่แสดงผล พอดีไปเจอของเวบ shotdev.com น่าจะมาจากแหล่งเดียวกัน แต่อันนี้ตรงใจที่สามารถบันทึกได้ทีละหลาย ๆ เร็คคอร์ด ตามที่เรากำหนด
ก็เลยจะตอบกระทู้นี้ว่า สามารถส่งให้ได้ในหน้าเดียวกัน (ส่วนตัว ก็พยายามจะทำอะไรให้อยู่ในหน้าเดียว หลังจากที่แต่ก่อนมักจะส่งผ่านไปยังหน้าอื่น (จาก file1.php ไป file2.php แต่พอเรียนรู้เยอะขึ้น ก็พยายามให้มีแต่ file1.php อย่างเดียว อยู่ที่พยายามหาทางออกให้เจอ)
นี้คือตัวอย่าง ซึ่งก็หวังใจแบบไม่ปิดบัง.. ในการทำเรืองบาลี, ศัพท์ และคำแปล
Code (PHP)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>แก้ไขและบันทึกคำแปลของศัพท์ภาษาบาลี ( Balee / Pali www.thammasatu.net/main ) </title>
<link rel="stylesheet" href="styles/PrevNext.css">
</head>
<script type="text/javascript" language="javaScript">
function LoadSelect()
{
var number = document.SOption.StoryTopic.selectedIndex;
var str=document.SOption.StoryTopic.options[number].value;
document.getElementById("park").value = park;
location.href = "words_update.php?park="+str;
//location.href = "htmlentities($_SERVER['PHP_SELF'])?StoryID="+str;
}
</script>
<body>
<table align="center"><tr><th>เลือกภาคในธัมมบท ที่นี่ -->> </th>
<td font face=tahoma size=12><form name="SOption" action="
<?php
echo htmlentities($_SERVER['PHP_SELF']);
if(!empty($park)) {
echo '?park='.$park;
}
?>
" method="post">
<p><select name="StoryTopic" onChange="LoadSelect(this.value)">
<option value="<?=StoryID?>" selected></option>
<option value="" selected>เลือกภาค (1 - 8) :</option>
<!--<? echo '<option value="' . $StoryID . '">' .$StoryTopic. ' ['. $StoryID.'] ภาค '. $Type.' </option>'; ?>-->
<option value="1">ธัมมบท ภาค 1</option>
<option value="2">ธัมมบท ภาค 2</option>
<option value="3">ธัมมบท ภาค 3</option>
<option value="4">ธัมมบท ภาค 4</option>
<option value="5">ธัมมบท ภาค 5</option>
<option value="6">ธัมมบท ภาค 6</option>
<option value="7">ธัมมบท ภาค 7</option>
<option value="8">ธัมมบท ภาค 8</option>
</select>
</form>
</tr></table>
<body>
<?
$time_start = microtime(true);
include_once "connect.php";
// สร้างฟังก์ชั่น สำหรับแสดงการแบ่งหน้า จากเวบ ninenik.com
function page_navigator($before_p,$plus_p,$total,$total_p,$chk_page){
global $park;
$pPrev=$chk_page-1;
$pPrev=($pPrev>=0)?$pPrev:0;
$pNext=$chk_page+1;
$pNext=($pNext>=$total_p)?$total_p-1:$pNext;
$lt_page=$total_p-4;
if($chk_page>0){
echo "<a href='?s_page=$pPrev&park=".$park."' class='naviPN'>Prev </a>";
}
if($total_p>=11){
if($chk_page>=4){
echo "<a $nClass href='?s_page=0&park=".$park."'>1</a><a class='SpaceC'>. . .</a>";
}
if($chk_page<4){
for($i=0;$i<$total_p;$i++){
$nClass=($chk_page==$i)?"class='selectPage'":"";
if($i<=4){
echo "<a $nClass href='?s_page=$i&park=".$park."'>".intval($i+1)."</a> ";
}
if($i==$total_p-1 ){
echo "<a class='SpaceC'>. . .</a><a $nClass href='?s_page=$i&park=".$park."'>".intval($i+1)."</a> ";
}
}
}
if($chk_page>=4 && $chk_page<$lt_page){
$st_page=$chk_page-3;
for($i=1;$i<=10;$i++){
$nClass=($chk_page==($st_page+$i))?"class='selectPage'":"";
echo "<a $nClass href='?s_page=".intval($st_page+$i)."'>".intval($st_page+$i+1)."</a> ";
}
for($i=0;$i<$total_p;$i++){
if($i==$total_p-1 ){
$nClass=($chk_page==$i)?"class='selectPage'":"";
echo "<a class='SpaceC'>. . .</a><a $nClass href='?s_page=$i&park=".$park."'>".intval($i+1)."</a> ";
}
}
}
if($chk_page>=$lt_page){
for($i=0;$i<=4;$i++){
$nClass=($chk_page==($lt_page+$i-1))?"class='selectPage'":"";
echo "<a $nClass href='?s_page=".intval($lt_page+$i-1)."'>".intval($lt_page+$i)."</a> ";
}
}
}else{
for($i=0;$i<$total_p;$i++){
$nClass=($chk_page==$i)?"class='selectPage'":"";
echo "<a href='?s_page=$i&park=".$park."' $nClass >".intval($i+1)."</a> ";
}
}
if($chk_page<$total_p-1){
echo "<a href='?s_page=$pNext&park=".$park."' class='naviPN'>Next</a>";
}
}
?>
<ul>
<?php
if($park=='') $park=1;
//$q="select distinct word, mean from tbl_vocab_tb where status =1";
$q="select distinct StoryID, StoryNum, word, mean from tbl_vocab_tb where status =1 and StoryID = '$park'";
$q.=" ORDER BY word ";
$qr=mysql_query($q);
$total=mysql_num_rows($qr);
$e_page=10; // กำหนด จำนวนรายการที่แสดงในแต่ละหน้า
if(!isset($_GET['s_page'])){
$_GET['s_page']=0;
}else{
$chk_page=$_GET['s_page'];
$_GET['s_page']=$_GET['s_page']*$e_page;
}
$q.=" LIMIT ".$_GET['s_page'].",$e_page";
$qr=mysql_query($q);
if(mysql_num_rows($qr)>=1){
$plus_p=($chk_page*$e_page)+mysql_num_rows($qr);
}else{
$plus_p=($chk_page*$e_page);
}
$total_p=ceil($total/$e_page);
$before_p=($chk_page*$e_page)+1;
if($_GET["Action"] == "Save")
{
echo $_POST["hdnLine"];
//echo $e_page;
$strSQL ='';
for($x=1; $x <= $e_page; $x++)
{
$StrMean=trim($_POST["txtmean$x"]);
$StrWord=$_POST["txtword$x"];
//echo "word & mean ". $StrWord." $x ". $StrMean;
if(trim($_POST["txtmean$x"]) !='') {
$strSQL = "UPDATE tbl_vocab_tb SET ";
//$strSQL .="NumID = '".$_POST["txtNumID$x"]."' ";
//$strSQL .="word = '".$_POST["txtword$x"]."' ";
$strSQL .="mean = '".$_POST["txtmean$x"]."' ";
//$strSQL .="WHERE NumID = '".$_POST["hdnNumID$x"]."' ";
$strSQL .="WHERE word = '".$_POST["txtword$x"]."';".chr(13);
}
//echo "SQL : ".$strSQL;
$objQry = mysql_query($strSQL);
//$objExecute = oci_execute($objParse,OCI_DEFAULT);
//oci_commit($objConnect);
}
//header("location:$_SERVER[PHP_SELF]");
//exit();
}
//print_r($_POST);break ;
//$strSQL = "SELECT * FROM tbl_vocab_tb ORDER BY word ASC limit 0,11";
//$objQry = mysql_query($strSQL);
$objQry = mysql_query($q);
//oci_execute ($objParse,OCI_DEFAULT);
?>
<form name="frmMain" method="post" action="words_update.php?Action=Save&s_page=<?=$s_page;?>&park=<?=$park;?>">
<table width="90%" border="1">
<tr>
<th width="78"> <div align="center">คำศัพท์</div></th>
<th width="98"> <div align="center">คำแปล</div></th>
</tr>
<? $z =0;
while($objResult = mysql_fetch_assoc($objQry))
{ $z = $z + 1;
$StoryID=$objResult["StoryID"];
$park=$StoryID;
?>
<tr>
<td><input type="text" class="bigtext" style="font-family:'Angsana Balee',Tahoma,'Angsana New'" name="txtword<?=$z;?>" size="25" value="<?=$objResult["word"];?>"></td>
<td><input type="text" class="bigtext" style="font-family:'Angsana Balee',Tahoma,'Angsana New'" name="txtmean<?=$z;?>" size="35" value="<?=$objResult["mean"];?>"></td>
</tr>
<? } ?>
</table>
<input type="hidden" name="s_page" value="<?=$s_page;?>">
<input type="hidden" id="park" name="park" value="<?=$park;?>">
<input type="submit" name="submit" value="Save">
<input type="hidden" name="hdnLine" value="<?=$z;?>">
</form>
<?php if($total>0){ ?>
<div class="browse_page">
<?php
// เรียกใช้งานฟังก์ชั่น สำหรับแสดงการแบ่งหน้า จากเวบ ninenik.com
page_navigator($before_p,$plus_p,$total,$total_p,$chk_page);
?>
</div>
<?php }
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "ใช้เวลาประมวลผล $time วินาที\n";
?>
</body>
</html>
<!--- ในส่วนที่เป็น multiple records โหลดจาก www.shotdev.com -->
|
|
|
|
|
Date :
2011-05-04 09:01:15 |
By :
พระมหาชินวัฒน์ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|