|
|
|
สอบถามเรื่องการส่งค่า จาก autocomplete มาแสดง ใน textbox |
|
|
|
|
|
|
|
คือ เราทำ autocomplete ได้แล้วค่ะ แต่ว่า อยากจะถามเรื่อง ส่งค่า อื่นๆจาก autocomplete ค่ะ เช่น เมื่อ พิม ชื่อสถานศึกษา ว่า "สวน" ก็จะมี list ชื่อสถานศึกษาที่มีคำว่า สวน ขึ้นมา เมื่อเลือแล้ว ให้ที่ช่อง รหัสสถานศึกษา จังหวัด ประเทศที่ตั้ง แสดงรายละเอียดขึ้นมาด้วยอ่ะคะ
code ของเรา พอดีพยายาม ทำไปทำมา ก็ทำไม่ได้อ่าค่ะ ต้องแก้ตรงไหนบ้างคะ
Code (PHP)
สถานศึกษา <input name="SCHOOLNAME" type="text" id="SCHOOLNAME" style="width:320px;" class="span5" >
<input type="hidden" name="SCHOOLID" id="SCHOOLID" >
รหัสสถานศึกษา<input name="school_id" type="text" id="school_id" value="<?php echo $record_application['school_id']; ?>" style="width:150px;" />
อำเภอ <input type="text" id="school_amphur" name="school_amphur" value="<?php echo $record_application['school_amphur']; ?>" style="width:150px;"/>
จังหวัด <input type="text" id="school_province" name="school_province" value="<?php echo $record_application['school_province']; ?>" style="width:150px;"/>
ประเทศที่ตั้ง <input type="text" id="school_country" name="school_country" value="<?php echo $record_application['school_country']; ?>" style="width:150px;"/>
<script type="text/javascript">
function make_autocom2(autoObj,showObj){
var mkAutoObj2=autoObj;
var mkSerValObj=showObj;
new Autocomplete(mkAutoObj2, function() {
this.setValue = function(id) {
document.getElementById(mkSerValObj).value = id;
}
if ( this.isModified )
this.setValue("");
if ( this.value.length < 1 && this.isNotClick )
return ;
return "ajax/gdata_schoolname.php?q=" + this.value;
});
}
make_autocom2("SCHOOLNAME","SCHOOLID");
</SCRIPT>
Code (PHP)
$rs = $pimOracleAPI->OracleExecute(" SELECT * FROM AVSREG.SCHOOL left join AVSREG.PROVINCE on AVSREG.SCHOOL.SCHOOLPROVINCEID = AVSREG.PROVINCE.PROVINCEID
WHERE SCHOOL.SCHOOLNAME LIKE '%".$q."%'
ORDER BY SCHOOL.SCHOOLNAME");
while($row = oci_fetch_array($rs, OCI_ASSOC)) {
$id = $row["SCHOOLID"]; // ฟิลที่ต้องการส่งค่ากลับ
//$name = ucwords( strtolower( $row["requestID"] ) ); // ฟิลที่ต้องการแสดงค่า
$name = $row["SCHOOLNAME"]; // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'", "'", $name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
}
Tag : PHP, JavaScript, Ajax, jQuery
|
|
|
|
|
|
Date :
2013-01-17 16:40:21 |
By :
ReOna |
View :
1529 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยากหน่อยน่ะครับ อาจจะต้องหาแทรก Event ตรงที่มัน input ค่าลงใน Textbox ครับ
|
|
|
|
|
Date :
2013-01-18 09:11:01 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แทรกยังไงอ่ะค่ะ แนะนำได้มั้ยคะ
|
|
|
|
|
Date :
2013-01-18 09:21:26 |
By :
ReOna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอตอบเองนะคะ ได้แล้วค่ะ สรุป code ได้ดังนี้ค่ะ
Code (PHP)
สถานศึกษา <input name="SCHOOLNAME" type="text" id="SCHOOLNAME" style="width:320px;" class="span5" value="<?php echo $record_application['school_name']; ?>" >
รหัสสถานศึกษา<input name="school_id" type="text" id="school_id" value="<?php echo $record_application['school_id']; ?>" style="width:150px;" />
จังหวัด <input type="text" id="school_province" name="school_province" value="<?php echo $record_application['school_province']; ?>" style="width:150px;"/>
ประเทศที่ตั้ง <input type="text" id="school_country" name="school_country" value="<?php echo $record_application['school_country']; ?>" style="width:150px;"/>
function make_autocom2(autoObj,showObj,showObj2,showObj3){
var mkAutoObj2=autoObj;
var mkSerValObj=showObj;
var mkSerValObj2=showObj2;
var mkSerValObj3=showObj3;
new Autocomplete(mkAutoObj2, function() {
this.setValue = function(id,id2,id3) {
document.getElementById(mkSerValObj).value = id;
document.getElementById(mkSerValObj2).value = id2;
document.getElementById(mkSerValObj3).value = id3;
}
if ( this.isModified )
this.setValue("");
if ( this.value.length < 1 && this.isNotClick )
return ;
return "ajax/gdata_schoolname.php?q=" + this.value;
});
}
make_autocom2("SCHOOLNAME","school_id","school_province","school_country");
Code (PHP)
<?php
$pagesize = 51; // จำนวนรายการที่ต้องการแสดง
$rs = $pimOracleAPI->OracleExecute(" SELECT * FROM AVSREG.SCHOOL left join AVSREG.PROVINCE on AVSREG.SCHOOL.SCHOOLPROVINCEID = AVSREG.PROVINCE.PROVINCEID
WHERE SCHOOL.SCHOOLNAME LIKE '%".$q."%' AND ROWNUM < '".$pagesize."' ORDER BY SCHOOL.SCHOOLNAME ");
while($row = oci_fetch_array($rs, OCI_ASSOC)) {
$id = $row["SCHOOLID"]; // ฟิลที่ต้องการส่งค่ากลับ
$id2 = $row["PROVINCENAME"];
$id3 = $row["COUNTRYNAME"];
$name = $row["SCHOOLNAME"]; // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'", "'", $name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(" . $q . ")/i", "<b>$1</b>", $name);
echo "<li onselect=\"this.setText('$name').setValue('$id','$id2','$id3');\">$display_name</li>";
}
?>
|
|
|
|
|
Date :
2013-01-18 11:35:12 |
By :
ReOna |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมมมม
|
|
|
|
|
Date :
2013-01-18 11:37:43 |
By :
leksoft |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมครับ
|
|
|
|
|
Date :
2013-01-18 11:42:44 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
echo "<li onselect=\"this.setText('$name').setValue('$id');\">$display_name</li>";
ถ้าค่าตัวนี้ลงใน Textbox แล้ว อยาก submit ให้ ส่งค่า Post ด้วย ajax แต่ลองทำแล้วมันทำไม่ได้ ไม่รู้ว่าโค๊ด javascript มันชนกันหรือเปล่าครับ แล้วมีวิธีแก้บ้างมัยครับ
|
|
|
|
|
Date :
2013-01-26 17:36:20 |
By :
jaiponge |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|