PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

การส่งค่า get จาก hidden text ไปใช้ใน dropdownlist

การส่งค่า get จาก hidden text ไปใช้ใน dropdownlist

จากรูปคือ พิมพ์ชื่อบริษัท แบบ autocomplete   แล้วจะมีข้อมูลชื่อบริษัท และ cid อยู่ด้านข้าง
แล้วอยากให้ cid ตัวนี้ ไปมีผลกับ dropdownlist ผู้ติดต่อด้านล่าง ซึ่งบริษัทนึงมีผู้ติดต่อหลายคน แล้วแต่เค้าจะเลือก 


หน้าAdd.php
<script language="JavaScript" type="text/javascript">
function list(tagNext, val, txtCon) {  
	var cid = $("#cid").val();
    $.getJSON('searchContactCus.php', {'name':txtCon,'value':val,'cid':cid}, function(data) {
        var select = $(tagNext);
        var options = select.attr('options');
        $('option', select).remove();
           $(select).append('<option value=""> - เลือกผู้ติดต่อ - </option>');
        $.each(data, function(index, array) {
			//alert(array[0]);
                $(select).css("display","inline");
				var data = array[0].split('|');
                $(select).append('<option value="'+ array[0] +'">' + data[1]+','+ data[2]+ '</option>');
        });
    });
}
</script>


<form id="form1" action="save.php" name="form1" method="POST" onSubmit="JavaScript:return fncSubmit();" >

<table width="100%">


<tr>
<td width="15%">บริษัท</td>
<td width="35">
<input name="cname" type="text" id="cname" size="50" class="form-control"/>
  <input name="cid" type="text" id="cid" onChange="list('#Contact',this.value,'cid')"/>


	</td>

</tr>

<tr>
<td>ผู้ติดต่อ</td>
<td>  <select name="Contact" id="Contact"  class="form-control"></select>
 
   

	<input name="id_contact" type="hidden" id="id_contact" />
	
	<input name="purName" type="hidden" id="purName" /></td></tr>
</table>
</form>
<!-----เรียกใช้ autocomplete------->
<script type="text/javascript">
function make_autocom(autoObj,showObj,showObj2){
	var mkAutoObj=autoObj; 
	var mkSerValObj=showObj; 
	var mkSerValObj2=showObj2; 
	new Autocomplete(mkAutoObj, function() {
		this.setValue = function(id,caddress) {		
			document.getElementById(mkSerValObj).value = id;
			document.getElementById(mkSerValObj2).value = caddress;
		}
		if ( this.isModified )
			this.setValue("");
		if ( this.value.length < 1 && this.isNotClick ) 
			return ;	
		return "autocomplete/autocomplete2.php?q=" +encodeURIComponent(this.value);
    });	
}	
 
// การใช้งาน
// make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า");
make_autocom("cname","cid","caddress");
</script>


หน้า autocomplete2.php

@header("Content-type:text/html; charset=UTF-8");        
@header("Cache-Control: no-store, no-cache, must-revalidate");       
@header("Cache-Control: post-check=0, pre-check=0", false);       
// เชื่อมต่อฐานข้อมูล
include('../Connections/conndb.php');
 
$q = urldecode($_GET["q"]);
$pagesize = 50; // จำนวนรายการที่ต้องการแสดง
$table_db="customer"; // ตารางที่ต้องการค้นหา
$find_field="cname"; // ฟิลที่ต้องการค้นหา
$sql = "SELECT * FROM $table_db  where locate('$q', $find_field) > 0 order by locate('$q', $find_field), $find_field limit $pagesize";
$results = mysql_query($sql);
while ($row = mysql_fetch_array( $results )) {
	$id = $row["cid"]; // ฟิลที่ต้องการส่งค่ากลับ
	$caddress = $row["caddress"]; // ฟิลที่ต้องการส่งค่ากลับ
	$name = ucwords( strtolower( $row["cname"] ) ); // ฟิลที่ต้องการแสดงค่า
	// ป้องกันเครื่องหมาย '
	$name = str_replace("'", "'", $name);
	// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
	$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
	echo "<li onselect="this.setText('$name').setValue('$id','$caddress');">$display_name</li>";
}
mysql_close();
หน้า searchContactCus.php
include('Connections/conndb.php'); 

$param = $_GET["term"];

$data = array();
$id = $_GET['value'];
$nameType = $_GET['name'];
if($nameType == 'cid') {
	if($id!=""){
		
		$query_subType = "SELECT DISTINCT id_contact,purName
FROM contactcus, customer
WHERE contactcus.cusID = customer.cid
AND contactcus.cusID =$id";
		$subType = mysql_query($query_subType) or die(mysql_error());		
		$totalRows_subType = mysql_num_rows($subType);
		if($totalRows_subType>0){
			while($row_subType = mysql_fetch_array($subType)){
				$data[] = array($row_subType["id_contact"].'|'.$row_subType["purName"]);
				
			}
		}
	}
	
}

echo json_encode($data);

flush();

ค่า cid ส่งไป มันไม่ขึ้นให้ค่ะ

 



โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 08-08-2014 เวลา: 14:38:15

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 6

ทำได้แล้วค่ะ

$address = preg_replace('/ss+/', ' ', $address);



โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 17-10-2014 เวลา: 09:41:26
 ความคิดเห็นที่ 5
สอบถามค่ะ คือ ส่งค่า address มา ซึ่งข้อมูลที่อยู่ บางตัวมีเครื่องหมาย , อยู่ ซึ่งทำให้ ไม่สามารถ run ต่อได้ แต่พอลองลบ , ออก ก็ใช้งานได้ปกติค่ะ เช่น บจก.กขค ที่อยู่ 84/1 rama2, BKK จะใช้ไม่ได้ แต่ถ้าเปลี่ยนที่อยู่เป็น 84/1 rama2 BKK ใช้งานได้ค่ะ ลอง str_replace ที่ address ดูแล้ว ไม่ได้ค่ะ พอจะมีวิธีแก้หรือเปล่าค่ะ

โดย:  Saranya2532 IP: 1.46.72.xxx วันที่: 16-10-2014 เวลา: 23:34:07
 ความคิดเห็นที่ 4
ขอบคุณมากค่ะ

โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 08-08-2014 เวลา: 17:30:22
 ความคิดเห็นที่ 3
ลองดูตัวอย่างนี้เป็นแนวทาง

ประยุกต์ ใช้งาน autocomplete กับ select ข้อมูล สองตาราง 
http://www.ninenik.com/content.php?arti_id=516 via @ninenik


โดย:  Ninenik IP: 124.120.58.xxx วันที่: 08-08-2014
 ความคิดเห็นที่ 2
input name="cid" type="text" id="cid" onChange="list('#Contact',this.value,'cid')"/>  ค่าจะมาจาก function make_autocom ค่ะ แล้วจะเอา ค่า cid ตรงนี้ ไปใช้กับ function list(tagNext, val, txtCon) อ่ะค่ะ

โดย:  Saranya2532 IP: 223.204.255.xxx วันที่: 08-08-2014 เวลา: 15:43:23
 ความคิดเห็นที่ 1
แนะนำไม่ถูก ต้องดูที่การ ส่งค่า และการทำงาน ว่าผิดตรงไหน

เดี๋ยวจะทำเป็นบทความ ไว้ประยุกต์ใช้

โดย:  Ninenik IP: 124.120.58.xxx วันที่: 08-08-2014