|
|
|
การดึงค่าจาก autocomplete มาใส่ textbox และดึงค่าไปใช้กับ dropdownlist อีกอันได้ด้วย |
|
|
|
|
|
|
|
Code (PHP)
<?PHP
mysql_connect("localhost","root","123456") or die("Connection Failed");
mysql_select_db("ims_db")or die("Connection Failed");
?>
Division :
<select id="sedivid" name="sedivid">
<option value="">Please Select</option>
<?PHP
$select=mysql_query("SELECT * FROM ims_div") or die (mysql_error());
while($div=mysql_fetch_array($select)){
?>
<option value="<?=$div['divid']?>"><?=$div['division']?></option>
<?PHP } ?>
</select>
<br />
Department:
<s id="sdept"><select></select></s>
<script src="jQuery.1.10.js"></script>
<script>
$(function(){
$('#sedivid').on('change',function(){
var divid=$(this).val();
var sedept=$('<select id="sedeptid" name="sedeptid">');
$('#sedeptid').val('');
$.ajax({url:"check.php",
async:false,
cache:false,
global:false,
type:"POST",
data:"divid="+divid,
success: function(result){
var obj=jQuery.parseJSON(result);
$.each(obj,function(key,val){
sedept.append("<option value='"+val['deptid']+"'>"+val['department']);
});
$('#sdept').html(sedept);
}
});
});
});
</script>
check.php
Code (PHP)
<?PHP
mysql_connect("localhost","root","123456") or die("Connection Failed");
mysql_select_db("ims_db")or die("Connection Failed");
$divid=mysql_real_escape_string($_POST['divid']);
$arrResult=array();
$select=mysql_query("SELECT * FROM ims_dept WHERE divid='".$divid."'") or die (mysql_error());
$numFields=mysql_num_fields($select);
while($dept=mysql_fetch_array($select)){
$arrCol=array();
for($i=0;$i<$numFields;$i++){
$arrCol[mysql_field_name($select,$i)]=$dept[$i];
}
array_push($arrResult,$arrCol);
}
echo json_encode($arrResult);
?>
example ลองดูครับ
|
|
|
|
|
Date :
2014-08-04 09:33:28 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ
แล้วถ้าอยากให้
<input name="cid" type="text" id="cid" onchange="list('#Contact',this.value,'cid')" />
<select name="Contact" id="Contact" class="form-control"></select>
โดยใช้
<script language="JavaScript" type="text/javascript">
function list(tagNext, val, txtCon) {
$.getJSON('searchContactCus.php', {name:txtCon,value:val}, function(data) {
var select = $(tagNext);
var options = select.attr('options');
$('option', select).remove();
$(select).append('<option value=""> - เลือกผู้ติดต่อ - </option>');
$.each(data, function(index, array) {
$(select).css("display","inline");
var data = array[0].split('|');
$(select).append('<option value="'+ array[0] +'">' + data[1]+','+ data[2]+ '</option>');
});
});
}
</script>
โค้ด หน้า searchContactCus.php
<?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 caddress, id_contact,purName,purPosition,purTel
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"].'|'.$row_subType["purPosition"].'|'.$row_subType["purTel"]);
}
}
}
}
echo json_encode($data);
flush();
?>
แบบนี้ได้ไม๊ค่ะ แต่ค่าไม่มาให้อ่ะค่ะ
|
|
|
|
|
Date :
2014-08-04 14:13:26 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าเป็นโค้ดแบบของพี่ด้านบน
<input name="cid" type="text" id="cid" />
Code (PHP)
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(document).ready(function(){
$("#cid").change(function(){
var cid=$(this).val();
var sePur=$('<select id="sePurid" name="sePurid">');
$('#sePurid').val('');
$.ajax({url:"check.php",
async:false,
cache:false,
global:false,
type:"POST",
data:"cid="+cid,
success: function(result){
var obj=jQuery.parseJSON(result);
$.each(obj,function(key,val){
sePur.append("<option value='"+val['id_contact']+"'>"+val['purName']);
});
$('#Contact').html(sePur);
}
});
});
});
</script>
แต่มันไม่ขึ้น dropdownlist ให้เลือกอ่ะค่ะ
<s id="Contact"><select></select></s>
หน้าโค้ด check.php
Code (PHP)
<?PHP
require_once('Connections/conndb.php');
$cid=mysql_real_escape_string($_POST['cid']);
$arrResult=array();
$select=mysql_query("SELECT * FROM contactcus WHERE cusID='".$cid."'") or die (mysql_error());
echo $select;
$numFields=mysql_num_fields($select);
while($dept=mysql_fetch_array($select)){
$arrCol=array();
for($i=0;$i<$numFields;$i++){
$arrCol[mysql_field_name($select,$i)]=$dept[$i];
}
array_push($arrResult,$arrCol);
}
echo json_encode($arrResult);
?>
|
ประวัติการแก้ไข 2014-08-04 16:06:05
|
|
|
|
Date :
2014-08-04 16:03:12 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอดู code พร้อมกับอธิบาย Process การทำงานอย่างชัดเจนหน่อยครับ เดี๋ยวกลับมาดูให้ครับ
|
|
|
|
|
Date :
2014-08-04 17:29:07 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
หน้า add.php
Code (PHP)
<!---autocomplete -->
<script type="text/javascript" src="autocomplete/autocomplete.js"></script>
<link rel="stylesheet" href="autocomplete/autocomplete.css" type="text/css"/>
<script type="text/javascript" src="autocomplete/js/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="autocomplete/js/jquery-ui-1.8.14.custom.min.js"></script>
<script language="JavaScript" type="text/javascript">
function list(tagNext, val, txtCon) {
$.getJSON('searchContactCus.php', {name:txtCon,value:val}, 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>
<script language="JavaScript">
function resutContact(strContact)
{
form1.id_contact.value = strContact.split("|")[0];
form1.purName.value = strContact.split("|")[1];
form1.purPosition.value = strContact.split("|")[2];
form1.purTel.value = strContact.split("|")[3];
}
</script>
<form id="form1" action="saveQT.php" name="form1" method="POST" onSubmit="JavaScript:return fncSubmit();" enctype="multipart/form-data" >
<table width="100%">
<tr>
<td colspan="4" align="center"><h2>ทำใบเสนอราคา</h2></td>
</tr>
<tr>
<td width="15%">บริษัท</td>
<td width="35">
<input name="cname" type="text" id="cname" size="50" class="form-control"/>
<input name="cid" type="hidden" id="cid" onchange="list('#Contact',this.value,'cid')">
</td>
<td width="15%"> </td>
<td width="35%"> </td>
</tr>
<tr>
<td width="100">ที่อยู่</td>
<td width="343">
<textarea name="caddress" id="caddress" cols="40" rows="5"></textarea></td>
<td width="343"> </td>
<td width="343"> </td>
</tr>
<tr>
<td>ผู้ติดต่อ</td>
<td>
<tr>
<td>ผู้ติดต่อ</td>
<td>
<select name="Contact" id="Contact" onChange="resutContact(this.value);" class="form-control"></select>
<input name="id_contact" type="hidden" id="id_contact" />
<input name="purName" type="hidden" id="purName" /></td>
<td>ตำแหน่ง</td>
<td><input name="purPosition" type="text" id="purPosition" class="form-control" /></td>
</tr>
<tr>
<td>เบอร์โทรศัพท์</td>
<td>
<input name="purTel" type="text" id="purTel" class="form-control" /></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="4" align="center">
<input type="submit" name="save" id="save" value="เพิ่มข้อมูล" />
<input type="reset" name="btncancel" id="btncancel" value="ยกเลิก" />
</td>
</tr>
</table>
</form>
<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
Code (PHP)
<?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
Code (PHP)
<?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,purPosition,purTel,purExt,purMobile,purEmail,techName,techPosition,techTel,techExt,appName,appPosition,appTel,appExt
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"].'|'.$row_subType["purPosition"].'|'.$row_subType["purTel"]);
}
}
}
}
echo json_encode($data);
flush();
?>
คือเลือก บริษัท จากการเรียกใช้หน้า autocomplete2.php และมีการเก็บค่า cid เป็น hidden text (ซึ่งโค้ดตรงนี้ทำงานได้ปกติ) และต้องการที่จะใช้ cid ตัวนี้เพื่อ เลือก dropdownlist ผู้ติดต่อของแต่ละบริษัท ในหน้า searchContactCus.php และจะมีการนำค่าที่ได้มา split ออกใส่ในแต่ละ textbox ด้วยเช่น ชื่อ ตำแหน่ง เบอร์โทร ค่ะ
|
ประวัติการแก้ไข 2014-08-05 08:42:42 2014-08-05 08:44:07 2014-08-05 10:40:13
|
|
|
|
Date :
2014-08-04 18:03:34 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอช่วยได้ไม๊ค่ะ
|
|
|
|
|
Date :
2014-08-05 12:04:16 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขออธิบายง่ายๆนะคะ
จาก http://www.tutorialdev.com/php/jquery-selected-dropdown-list-with-php-mysql/
มันเป็นการเลือก dropdownlist อันแรก แล้วสามารถไปเลือก dropdownlist อันต่อไปได้
<select id="type" name="type" onchange="list('#subType',this.value,'type')">
แต่ที่อยากได้คือ มีค่าที่ต้องการส่ง มาจาก <input name="cid" type="hidden" id="cid" />
แล้วจะเปลี่ยน function list(tagNext, val, txtCon) {} ตรงนี้ยังไงค่ะ
Code (PHP)
<script language="JavaScript" type="text/javascript">
function list(tagNext, val, txtCon) {
$.getJSON('combobox.php', {name:txtCon,value:val}, function(data) {
var select = $(tagNext);
var options = select.attr('options');
$('option', select).remove();
$(select).append('<option value=""> - เลือก - </option>');
$.each(data, function(index, array) {
$(select).css("display","inline");
$(select).append('<option value="' + array[0] + '">' + array[1] + '</option>');
});
});
}
</script>
เพื่อให้ดึงค่า cid ไปใช้แทน <select id="type" name="type" onchange="list('#subType',this.value,'type')"> อ่ะค่ะ
|
|
|
|
|
Date :
2014-08-06 08:53:56 |
By :
bsaranya |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|