|  | 
	                
  
    | 
	 
        if else ใน Javascript แทรก คำสั่ง PHP ลงไปแล้วไม่ทำงาน ค่ะ และก็ต้องการ onChange จาก select list แล้วส่งค่าไปให้ txtfield ใน form php     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | type มีค่าจริงหรือเปล่าครับ ลอง alert(); ออกมาดูก่อนเข้าเงื่อนไข 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 14:15:26 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | type มีค่าจริงอ่ะ เข้า เงือนไข แล้วก็ alert ตามเงื่อนไขเลยค่ะ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 14:27:50 | By :
                            JuNiorWP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ค่า types ส่งมาจากไหนครับ 
 แล้วเมื่อได้ $sql_code จะนำไปใช้ยังไงต่อครับ
 
 เผื่อจะใช้วิธีแบบอื่นได้ ^^
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 14:40:53 | By :
                            Naizan |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มันเช็คอย่างนั้นไม่ได้ครับ  ลองวิธีนี้ดูครับ ว่าใช่อย่างนี้หรือเปล่า 
 1. Copy Code ด้านล่างนี้ไปตั้งชื่อ เป็น form1.php
 
 Code (PHP)
 
 <HTML>
<HEAD>
<TITLE> Form1 </TITLE>
<script language="javascript">
function fncChange(_val){
	if(_val != ""){
	document.f.target = "ifupdate";
	document.f.method = "post";
	document.f.action = "form2.php?types="+_val;
	document.f.submit();
	}
}
</script>
</HEAD>
<BODY>
<form name="f">
<TABLE border="1">
<TR>
	<TD>
	<select name="slName" id="slName" onchange="fncChange(this.value)">
	<option value="">---select---</option>
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	</select>
	</TD>
</TR>
<TR>
	<TD>
	<INPUT TYPE="text" NAME="txtName" id="txtName">
	</TD>
</TR>
</TABLE>
</form>
<iframe name="ifupdate" width="800" height="300" style="display:none"></iframe>
</BODY>
</HTML>
2. Copy Code ด้านล่างนี้ไปตั้งชื่อ เป็น form2.php
<HTML>
<HEAD>
<TITLE> Form2 </TITLE>
</HEAD>
<BODY>
<?php
$conn = mysql_connect("localhost","root","root") or die("Error Connect to Database");
$objDB = mysql_select_db("tablename");
mysql_query("SET NAMES 'utf8'");
$types = $_REQUEST["types"];
if($types == "1"){
$sql_code="SELECT a1 as value FROM aaa";
}else if($types == "2"){
$sql_code="SELECT b1 as value FROM bbb";
}else if($types == "3"){
$sql_code="SELECT c1 as value FROM ccc";
}else if($types == "4"){
$sql_code="SELECT d1 as value FROM ddd";
}
$rs = mysql_query($sql_code,$conn) or die ("Error Query [".$sql_code."]");
while ($objResult = mysql_fetch_array($rs)){
$value = $objResult["value"];
?>
 <script language="javascript">
 parent.document.getElementById("txtName").value="<?=$value;?>";
 </script>
 <?php
}
?>
</BODY>
</HTML>
 
 ***** รายละเอียด
 เมือ Onchange ที่ slName  ก็จะทำการ submit ค่าส่งไปที่ form2.php
 
 พอ form2.php รับค่าแล้วก็ทำการ select ข้อมูลตามเงื่อนไข  แล้วส่งค่ากลับไปที่  txtName ของ form1.php
 
 
 ลองทดสอบดูครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 14:46:24 | By :
                            thep |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | แนะนำให้ส่งค่า types ที่ได้ไปแบบ $_GET['type'] หรือ $_POST['type'] ไปเลยครับ 
 แล้วค่อยตรวจสอบค่า type ที่ส่งมาในไฟล์ php ครับ
 จะได้ตรวจสอบที่ php ที่เดียว
 
 
 ตามตัวอย่างโค๊ดของความคิดเห็นที่ 4 ครับ
 
 |  
              | 
 ประวัติการแก้ไข
 2013-04-09 15:13:05
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 15:11:56 | By :
                            Naizan |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | พูดถึงใช้ php ธรรมดา เพียวๆก็ได้แล้วนะครับ เช็ค type ก่อนแล้วเข้าเงื่อนไข 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 15:12:26 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ขอถามคอนเสปหน้านี้หน่อยครับ ต้องการให้page นี้ทำงานอย่างไร ขอละเอียด เดี๋ยเขียน example ให้ครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 15:26:31 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | คงต้องใช้ Ajax & jQuery แล้วหละครับ รอซักครู่ครับเดี๋ยเขียนตัวอย่างให้ครับ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 16:20:08 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มี db มั้ยครับ รบกวนส่งเข้า email หน่อยได้มั้ยครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 16:23:01 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | มันติดตรงที่ ถ้ากลับมาที่หน้าเดิมแล้วค่าอื่นๆ มันหายน่ะสิคะ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 16:23:39 | By :
                            JuNiorWP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | php ในการแสดงผลแต่ละครั้ง จำการ refresh หน้า เพราะฉะนั้นต้องใช้ ajax&jquery ในการกระทำครับ  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 16:25:08 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมก็ทำตัวอย่างให้ดูแล้วครับ ที่ คำตอบที่ 4   การ submit ด้วย iframe  ได้แน่นอนครับ คุณลองเอา 2 file นี้ไป ลองทดสอบดู  แก้ไขแค่ Database ให้เหมือนกับของคุณ เท่านั้นเอง  ถ้าได้แล้วคุณค่อยมาประยุกต์ใส่ของคุณอีกทีครับ
 
 
 โชคดี
 
 
 1. Copy Code ด้านล่างนี้ไปตั้งชื่อ เป็น form1.php
 
 <HTML>
 <HEAD>
 <TITLE> Form1 </TITLE>
 <script language="javascript">
 function fncChange(_type,_val){
 if(_val != ""){
 document.f.target = "ifupdate";
 document.f.method = "post";
 document.f.action = "form2.php?gType="+_type+"&gValue="+_val;
 document.f.submit();
 }
 }
 </script>
 </HEAD>
 <BODY>
 <form name="f">
 <TABLE border="1">
 <TR>
 <TD>
 Type <select name="slType" id="slType" onchange="fncChange(this.value,'type')">
 <option value="">---select---</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 </select>
 </TD>
 <TD>
 Code <select name="slCode" id="slCode" onchange="fncChange(this.value,'code')">
 <option value="">---select---</option>
 </select>
 </TD>
 <TD>
 Size<INPUT TYPE="text" NAME="txtSize" id="txtSize">
 </TD>
 <TD>
 Unit <INPUT TYPE="text" NAME="txtUnit" id="txtUnit">
 </TD>
 </TR>
 </TABLE>
 </form>
 <iframe name="ifupdate" width="800" height="300" style="display:none"></iframe>
 </BODY>
 </HTML>
 
 
 
 2. Copy Code ด้านล่างนี้ไปตั้งชื่อ เป็น form2.php
 
 <HTML>
 <HEAD>
 <TITLE> Form2 </TITLE>
 </HEAD>
 <BODY>
 <?php
 $conn = mysql_connect("localhost","root","root") or die("Error Connect to Database");
 $objDB = mysql_select_db("tablename");
 mysql_query("SET NAMES 'utf8'");
 
 $gType = $_REQUEST["gType"];
 $gValue = $_REQUEST["gValue"];
 
 if($gType == "type"){ // Type
 
 $arrValue = "";
 if($gValue == "1"){
 $sql_code="SELECT a1 as value FROM aaa";
 }else if($gValue == "2"){
 $sql_code="SELECT b1 as value FROM bbb";
 }else if($gValue == "3"){
 $sql_code="SELECT c1 as value FROM ccc";
 }else if($gValue == "4"){
 $sql_code="SELECT d1 as value FROM ddd";
 }
 
 $rs = mysql_query($sql_code,$conn) or die ("Error Query [".$sql_code."]");
 while ($objResult = mysql_fetch_array($rs)){
 if($arrValue != "")$arrValue.= ",";
 $arrValue .= $objResult["value"];
 }
 
 if($arrValue != ""){
 ?>
 <script language="javascript">
 var _arr="<?=$arrValue;?>";
 var _arrValue = _arr.split(",");
 var PChooser = parent.document.f.elements["slCode"];
 while (PChooser.options.length) {
 PChooser.remove(0);
 }
 
 newElem = document.createElement("option");
 newElem.text = "---select---";
 newElem.value = "";
 PChooser.add(newElem, where);
 
 for (var i = 0; i < _arrValue.length; i++) {
 newElem = document.createElement("option");
 newElem.text = _arrValue[i];
 newElem.value =_arrValue[i];
 PChooser.add(newElem, where);
 }
 </script>
 <?php
 }
 
 }
 else{  // Code
 
 $sql_code = "select size,unit from tablename where code=".$gValue;
 $rs = mysql_query($sql_code,$conn) or die ("Error Query [".$sql_code."]");
 while ($objResult = mysql_fetch_array($rs)){
 $size = $objResult["size"];
 $unit = $objResult["unit"];
 echo "<script language='javascript'>";
 echo "parent.document.getElementById('txtSize').value="<?=$size;?>";
 echo "parent.document.getElementById('txtUnit').value="<?=$unit;?>";
 echo "</script>";
 }
 
 }
 ?>
 </BODY>
 </HTML>
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 16:52:38 | By :
                            thep |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | Update ล่าสุด ได้แน่นอนครับ 
 <HTML>
 <HEAD>
 <TITLE> Form1 </TITLE>
 <script language="javascript">
 function fncChange(_type,_val){
 if(_val != ""){
 document.f.target = "ifupdate";
 document.f.method = "post";
 document.f.action = "test3.php?gType="+_type+"&gValue="+_val;
 document.f.submit();
 }
 }
 </script>
 </HEAD>
 <BODY>
 <form name="f">
 <TABLE border="1">
 <TR>
 <TD>
 Type <select name="slType" id="slType" onchange="fncChange('type',this.value)">
 <option value="">---select---</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 </select>
 </TD>
 <TD>
 Code <select name="slCode" id="slCode" onchange="fncChange('code',this.value)">
 <option value="">---select---</option>
 </select>
 </TD>
 <TD>
 Size<INPUT TYPE="text" NAME="txtSize" id="txtSize">
 </TD>
 <TD>
 Unit <INPUT TYPE="text" NAME="txtUnit" id="txtUnit">
 </TD>
 </TR>
 </TABLE>
 </form>
 <iframe name="ifupdate" width="800" height="300" style="display:"></iframe>
 </BODY>
 </HTML>
 
 
 
 
 <HTML>
 <HEAD>
 <TITLE> Form2 </TITLE>
 </HEAD>
 <BODY>
 <?php
 $conn = mysql_connect("localhost","root","root") or die("Error Connect to Database");
 $objDB = mysql_select_db("shop");
 mysql_query("SET NAMES 'utf8'");
 
 $gType = $_REQUEST["gType"];
 $gValue = $_REQUEST["gValue"];
 
 if($gType == "type"){ // Type
 
 $arrValue = "";
 if($gValue == "1"){
 $sql_code="SELECT ptid as value FROM producttype";
 }else if($gValue == "2"){
 $sql_code="SELECT ptid as value FROM producttype";
 }else if($gValue == "3"){
 $sql_code="SELECT ptid as value FROM producttype";
 }else if($gValue == "4"){
 $sql_code="SELECT ptid as value FROM producttype";
 }
 
 $rs = mysql_query($sql_code,$conn) or die ("Error Query [".$sql_code."]");
 while ($objResult = mysql_fetch_array($rs)){
 if($arrValue != "")$arrValue.= ",";
 $arrValue .= $objResult["value"];
 }
 
 if($arrValue != ""){
 ?>
 <script language="javascript">
 var newElem;
 var where = (navigator.appName == "Microsoft Internet Explorer") ? -1 : null;
 var _arr="<?=$arrValue;?>";
 var _arrValue = _arr.split(",");
 var PChooser = parent.document.f.elements["slCode"];
 while (PChooser.options.length) {
 PChooser.remove(0);
 }
 
 newElem = document.createElement("option");
 newElem.text = "---select---";
 newElem.value = "";
 PChooser.add(newElem, where);
 
 for (var i = 0; i < _arrValue.length; i++) {
 newElem = document.createElement("option");
 newElem.text = _arrValue[i];
 newElem.value =_arrValue[i];
 PChooser.add(newElem, where);
 }
 </script>
 <?php
 }
 
 }
 else{  // Code
 
 $sql_code = "select price,amt from product where ptid=".$gValue." limit 0,1";
 $rs = mysql_query($sql_code,$conn) or die ("Error Query [".$sql_code."]");
 while ($objResult = mysql_fetch_array($rs)){
 $size = $objResult["price"];
 $unit = $objResult["amt"];
 echo "<script language='javascript'>";
 echo "parent.document.getElementById('txtSize').value=\"".$size."\";";
 echo "parent.document.getElementById('txtUnit').value=\"".$unit."\";";
 echo "</script>";
 }
 
 }
 ?>
 </BODY>
 </HTML>
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 17:14:25 | By :
                            thep |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ทำให้ในรูปแบบ JSON นะครับ สามารถ copy paste ได้เลย setting ตาม db ให้เรียบร้อยครับ  
 form.php
 Code (PHP)
 
 <!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>
<table border="0">
  <tr>
    <td>Type</td>
    <td>
    <select id="seType">
    	<option value="">กรุณาเลือก</option>
        <option value="aaca">aaca</option>
        <option value="aact">aact</option>
        <option value="acsra">acsra</option>
        <option value="acsrt">acsrt</option>
    </select>
    </td>
    <td>Code</td>
    <td>
    <select id="seCode">
    <option value="">กรุณาเลือก</option>
    </select>
    </td>
    <td>Site</td>
    <td><input type="text" id="txtSite" name="txtSite" value="" disabled="disabled" /></td>
    <td>Unit</td>
    <td><input type="text" id="txtUnit" name="txtUnit" value="" disabled="disabled" /></td>
  </tr>
</table>
<script language="javascript" src="admin/module/inc/scripts/jquery-1.8.1.min.js"></script>
<script>
	$(document).ready(function() {
		
		//select Type
        $('#seType').change(function(){
			var db=this.value;
			var txtSite=$('#txtSite');
			var txtUnit=$('#txtUnit');
			txtSite.empty();
			txtUnit.empty();
			
			var seCode=$('#seCode');
			var field='';
			if(db=='aaca'){
				field='CA1';	
			}else if(db=='aact'){
				field='CT1';
			}else if(db=='acsra'){
				field='RA1';
			}else if(db=='acsrt'){
				field='RT1';
			}
			
			seCode.empty();
			
			$.ajax({url:"access.php",
				async:false,
				cache:false,
				global:false,
				type:'POST',
				data:'act=db&db='+db+
					'&field='+field,
				success: function(result){
					var obj=jQuery.parseJSON(result);
					seCode.append('<option>กรุณาเลือก</option>');
					$.each(obj,function(key,val){
						seCode.append('<option value='+val[field]+'>'+val[field]+'</option>');
					});
				}
			});
		});
		
		
		$('#seCode').change(function(){
			var code=this.value;
			var db=$('#seType').val();
			var txtSite=$('#txtSite');
			var txtUnit=$('#txtUnit');
			
			var field='';
			var site='';
			var uni='';
			
			if(db=='aaca'){
				field='CA1';
				site='CA2';
				uni='CA6';	
			}else if(db=='aact'){
				field='CT1';
				site='CT3';
				uni='CT5';
			}else if(db=='acsra'){
				field='RA1';
				site='RA2';
				uni='RA6';
			}else if(db=='acsrt'){
				field='RT1';
				site='RT3';
				uni='RT5';
			}
			
			$.ajax({url:"access.php",
				async:false,
				cache:false,
				global:false,
				type:'POST',
				data:'act=code&db='+db+
					'&code='+code+
					'&field='+field+
					'&site='+site+
					'&unit='+uni,
				success: function(result){
					var obj=jQuery.parseJSON(result);
					$.each(obj,function(key,val){
						txtSite.val(val[site]);
						txtUnit.val(val[uni]);
					});
				}
			});
			
			
		});
			
			
    });
</script>
</body>
</html>
access.php
 Code (PHP)
 
 <?	error_reporting(0);
	$Host="localhost";
	$HostUsername="root";
	$HostPassword="123456";
	$DB="ct_cal";
	$Connect=mysql_connect($Host,$HostUsername,$HostPassword);
	if($Connect){
		$select_DB=mysql_select_db($DB);
		if($select_DB){
			mysql_query("SET NAMES UTF8");	
		}
	}else{
		echo "connection error";	
	}
	
	$act=$_POST['act'];
	$arrResult=array();
	switch($act){
		case 'db' :	 $db=$_POST['db'];
						$field=$_POST['field'];
						$query=mysql_query("select $field from $db") or die (mysql_error());
						$num_field=mysql_num_fields($query);
						while($result=mysql_fetch_array($query)){
							$arrCol=array();
							for($i=0;$i<=$num_field;$i++){
								$arrCol[mysql_field_name($query,$i)]=$result[$i];	
							}
							array_push($arrResult,$arrCol);	
						}
		break;
		case 'code'	:	$db=$_POST['db'];
							$field=$_POST['field'];
							$code=$_POST['code'];
							$site=$_POST['site'];
							$unit=$_POST['unit'];
							
							$query=mysql_query("select $site,$unit from $db WHERE $field='".$code."'") or die (mysql_error());
							$num_field=mysql_num_fields($query);
							while($result=mysql_fetch_array($query)){
								$arrCol=array();
								for($i=0;$i<=$num_field;$i++){
									$arrCol[mysql_field_name($query,$i)]=$result[$i];	
								}
								array_push($arrResult,$arrCol);	
							}
							
							
	}
	
	echo json_encode($arrResult);
?>
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 18:11:51 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | รบกวนอีกทีค่ะ ลองทำในกรณีถ้าไม่เลือก Code ก็ไม่ให้แสดงค่า size กับ unit อ่ะค่ะ ลองเอา  txtSite.empty(); แล้วก็ไม่ได้อ่ะค่ะ แล้วต้องการจะ Clear ค่า site unit ในกรณีที่ไม่ได้เลือก Code จะต้องทำอย่างไรอ่ะค่ะ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 20:07:24 | By :
                            JuNiorWP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ทำได้แล้วค่ะ  เพิ่ม txtSite.val('');  , txtUnit.val(''); เข้าไปในส่วนของ Select type  ไม่รู้ว่าเป็นวิธีที่ดีที่สุดมั้ย แต่มันก็สามารถทำงานได้ตามต้องการ  
 success: function(result){
 var obj=jQuery.parseJSON(result);
 seCode.append('<option>กรุณาเลือก</option>');
 $.each(obj,function(key,val){
 seCode.append('<option value='+val[field]+'>'+val[field]+'</option>');
 txtSite.val('');
 txtUnit.val('');
 });
 
 }
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 21:20:30 | By :
                            JuNiorWP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมกำหนด  disabled="disabled" ของ type text แล้วหนิครับ ถ้าไม่เลือกมันก็ไม่แสดงผลอยู่แล้ว 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2013-04-09 21:22:38 | By :
                            Ex-[S]i[L]e[N]t |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 |  |