เอาค่าออกนอกฟังก์ชั่น autocompleate jquery ใครพอรู้ช่วยดูให้หน่อยค่ะ
คือเอาค่าที่เรา Query ข้อมูลได้จากหน้า gdata.php ส่งค่าไปให้หน้า item_data.php ได้แล้ว ซึ่งอยู่ในฟังก์ชั่น this.myfunction = function(data1,data2,data3) แต่ที่นี้จะเอาค่าออกจากนอกฟังก์ชั่นเพื่อเอาค่าไปแสดงข้อมูล ลอง echo แล้วค่ามันไม่ยอมออกจากนอกฟังก์ชั่นใครรู้ช่วยบอกที่ค่ะ
gdata.php
Quote: <?php
header("Content-type:text/html; charset=tis-620");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
// เชื่อมต่อฐานข้อมูล
$link=mssql_connect("TMCI07","sa","@Dm1n15trat0r") or die("error");
mssql_select_db("TMCI_App",$link);
//mssql_query("set character set tis-620");
$q = urldecode($_GET["q"]);
$table_db="item"; // ตารางที่ต้องการค้นหา
$find_field="item"; // ฟิลที่ต้องการค้นหา
$sql = "SELECT TOP 200 * FROM item where Charindex('$q',$find_field)>0 order by Charindex('$q', $find_field),$find_field";
$results = mssql_query($sql);
while ($row = mssql_fetch_array($results)){
$id = $row["item"]; // ฟิลที่ต้องการส่งค่ากลับ
$data1 = $row['description'];
$data2 = $row['u_m'];
$data3 = $row['lead_time'];
$name = ucwords(strtolower($row["item"])); // ฟิลที่ต้องการแสดงค่า
// ป้องกันเครื่องหมาย '
$name = str_replace("'","'",$name);
// กำหนดตัวหนาให้กับคำที่มีการพิมพ์
$display_name = preg_replace("/(".$q.")/i", "<b>$1</b>",$name); //this.myfunction คือส่วนที่่ส่งค่ากลับสู่ ฟังก์ชั่นหน้าแรกค่ะ
echo "<li onselect=\"this.setText('$name').setValue('$id');this.myfunction('$data1','$data2','$data3');\">
$display_name</li>";
}
mssql_close();
?>
item_data.php
Quote: <TD><?echo nbs(5);?><b>Item :</b><?echo nbs(5);?>
<input name="show_arti_topic" type="text" id="show_arti_topic" value='' size='30'>
<input name="h_arti_id" type="hidden" id="h_arti_id" value="">
<script type="text/javascript">
function make_autocom(autoObj,showObj){
var mkAutoObj=autoObj;
var mkSerValObj=showObj;
new Autocomplete(mkAutoObj,
function(){
this.setValue = function(id){
document.getElementById(mkSerValObj).value = id;
}
this.myfunction = function(data1,data2,data3){ /*ส่วนที่รับค่าจากหน้า gdata.php มันแสดงข้อความเป็น Message Box แต่ที่นี้จะเอา ค่า $data1,$data2,$data3 ออกไปแสดงแล้วมันเอาไปใช้ไม่ได้อ่ะค่ะ */
alert(data1+" "+data2+" "+data3);
}
if (this.isModified)
this.setValue("");
if (this.value.length < 1 && this.isNotClick)
return ;
return "<?php echo base_url();?>textj/gdata1.php?q="+encodeURIComponent(this.value);
});
}
make_autocom("show_arti_topic","h_arti_id");
</script>
</TD>
<TD><?echo nbs(15);?><b> UM :</b><?echo nbs(5);?><INPUT TYPE="text" NAME="ref_num" value=''></TD>
<TD><?echo nbs(10);?><INPUT TYPE="submit" name ="materialtran" value ="Material Transaction"></TD>
</TR>
</TABLE>
<TABLE border='0' align ='center>'>
<TR>
<TD><?echo nbs(21);?><input type ='text' size ='30' value='<?echo data1;?>'></TD>
<TD><?echo nbs(8);?><b>Source :</b><?echo nbs(2);?><?echo $data2;?></TD>
<TD><?echo nbs(15);?><b>Quantility On Hand :</b><?echo nbs(2);?><?echo $data3;?></TD>
</TR>
Tag : PHP, jQuery
Date :
2011-11-23 14:33:41
By :
nidnoiiz
View :
1616
Reply :
10
เข้าใจว่าคุณยังไมไ่ด้เอาค่าไปใส่ใน ตัวแปรครับ เพระาค่ามันยังอยู่ใน javascript แต่คึณเรียกออกมาทาง php มันคนละภาษากัน เลยไม่มีค่า
คุณต้องใส่ค่าก่อน แต่ผมก็ไม่แน่ใจว่าใช่แบบนี้หรือเปล่านะ เพระาเคยใช้แต่กับ Jquery
Code (JavaScript)
oFormObject.elements["element_name"].value = 'Some Value';
ลองดูจกา link นี้ละกัน
http://www.javascript-coder.com/javascript-form/javascript-form-value.phtml
Date :
2011-11-23 15:07:39
By :
grandraftz
ใช้ jquery ค่ะ มันเป็น jquery autocomplete เคยใช้เป่าค่ะ คือมันดึงค่ามากจากหน้า gdata.php ซึ่ง query มาจาก database อ่ะค่ะ แล้วที่นี้มันส่งค่ากลับมาและ ใน ฟังก์ชั่น
this.myfunction = function(data1,data2,data3){
alert(data1+" "+data2+" "+data3);
}
คือค่ามันมาแล้วอ่ะค่ะ พอลองแล้ว ค่ามันแสดงเป็น message box แทน ที่นี้หาวิธีดึงค่าออกจากตรงนี้ไม่ได้ งงค่ะ
Date :
2011-11-23 15:15:46
By :
nidnoiiz
งั้นคุณลองใส่ ลงใน function นั้นดู ว่า ค่ามาไหม
Code (JavaScript)
$("#h_arti_id").val(data1);
ผมไม่เคยใช้ autocomplete
Date :
2011-11-23 15:39:59
By :
grandraftz
ใส่ไว้ใน ฟังก์ชั่น ไหนค่ะ ใส่ไว้ใน this.myfunction = function(data1,data2,data3) หรือเป่า
Date :
2011-11-23 15:44:57
By :
nidnoiiz
ทำได้แล้วค่ะ อยากจะกรี๊ดให้ดังๆๆๆๆๆๆๆๆๆๆ 555+ แต่ขอถามอีกนิดหนึ่งค่ะว่า ถ้าเราจะไม่ให้มันเป็นกล่องข้อความ input ให้แสดงเป็นค่าธรรมดาไม่ใส่กล่องข้อความนิได้จะเป่าค่ะ
Date :
2011-11-23 15:50:31
By :
nidnoiiz
สร้าง div ไว้สักอันในหน้านั้น ตรงที่คุณจะให้มันแสดง เช่น
<div id="test"></div>
แล้วคุณก็เอาโค้ดของคุณ grandraft ไปใช้ได้เลย
$("#test").val(data1);
Date :
2011-11-23 16:31:07
By :
ไวยวิทย์
แล้วถ้าเกิดว่าต้องเอาข้อมูลที่ได้ไปแสดงใน Checkbox ต้องทำยังไงอ่ะค่ะ ถ้ามีค่าเป็น 1 ให้ติก ถูก ถ้าไม่ใช่ไม่ต้องติก ลองเขียนแบบนี้แล้วก้อยั้งไมได้ งงๆๆ
<INPUT TYPE="checkbox" NAME="stock" id="stock" value="1" <?if($result["stock"]==1){?>checked<?}?>
Date :
2011-11-25 15:30:46
By :
nidnoiiz
Code (PHP)
<script type="text/javascript">
this.myfunction = function(data1,data2,data3){
if(data1==1){ //
$("#stock").attr("checked",true);
}else{
$("#stock").attr("checked",false);
}
}
</script>
Date :
2011-11-25 15:41:27
By :
จัดให้
ถ้า data1 คือค่าที่คุณจะเอาไปเก็บใน checkbox ที่มีไอดี stock
ก็
$('#stock').val( data1 ); // นี่คืำอทำให้เช็คบ๊อกมีค่าเท่ากับค่าที่ได้จาก data1
ทีนี้ก็ทำการเช็คว่า data1 มีค่าเท่ากับ 1 หรือเปล่า
ก็
if( data1 == 1 ){
$('#stock').attr('checked', true'); // อันนี้ทำให้มันเช็ค
}else{
$('#stock').attr('checked', true');// อันนี้ไม่ทำให้มันเช็ค
}
ลองดู และก็ทำความเข้าในในการทำงานระหว่าง jquery, javascript กับ php ด้วยน่ะครับ
Date :
2011-11-25 15:43:58
By :
ไวยวิทย์
ได้และขอบคุณค่ะ ^^
Date :
2011-11-25 16:02:38
By :
nidnoiiz
Load balance : Server 02