ค่าในฐานข้อมูลมันไม่โชว์ค่ะ ไม่ทราบว่าเขียนผิดตรงไหนค่ะ รบกวนด้วยค่ะ
Code (PHP)
<?php
?>
<html>
<head>
<title> ITEM </title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(fITEM_NO,fITEM_NAME,fSPEC) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'AjaxGetFill.php';
var pmeters = "tITEM_NO=" + encodeURI( document.getElementById(fITEM_NO).value);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
//if(HttPRequest.readyState == 3) // Loading Request
//{
//document.getElementById(fProductName).innerHTML = "..";
//}
if(HttPRequest.readyState == 4) // Return Request
{
var myProduct = HttPRequest.responseText;
if(myProduct != "")
{
var myArr = myProduct.split("|");
document.getElementById(fITEM_NAME).value = myArr[0];
document.getElementById(fSPEC).value = myArr[1];
}
}
}
}
</script>
<body>
<form id="frm" name="frm" method="post" action="">
<table width="390" border="1">
<?
$strProduct = trim($_POST["tItemNo"]);
include('connect.php');
$sql_itemno = "SELECT * FROM item WHERE ITEM_NO = '".$strItem."' ";
$result_itemno = mysql_query($sql_itemno) or die ("Error Query [".$sql_itemno."]");
$objResult = mysql_fetch_array($result_itemno);
if($objResult)
{
echo $objResult["ITEM_NAME"]."|".$objResult["SPEC"];
}
?>
<tr>
<th width="84">Item No </th>
<th width="185">Item Name </th>
<th width="99">Spec</th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtProductID1" id="txtProductID1" size="5" OnChange="JavaScript:doCallAjax('txtProductID1','txtProductName1','txtPrice1');">
</div></th>
<th><input type="text" name="txtProductName1" id="txtProductName1" size="30"></th>
<th><input type="text" name="txtPrice1" id="txtPrice1" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtProductID2" id="txtProductID2" size="5" OnChange="JavaScript:doCallAjax('txtProductID2','txtProductName2','txtPrice2');">
</div></th>
<th><input type="text" name="txtProductName2" id="txtProductName2" size="30"></th>
<th><input type="text" name="txtPrice2" id="txtPrice2" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtProductID3" id="txtProductID3" size="5" OnChange="JavaScript:doCallAjax('txtProductID3','txtProductName3','txtPrice3');">
</div></th>
<th><input type="text" name="txtProductName3" id="txtProductName3" size="30"></th>
<th><input type="text" name="txtPrice3" id="txtPrice3" size="10"></th>
</tr>
</table>
</form>
</body>
</html>
Tag : PHP, MySQL, JavaScript, Ajax
Date :
2010-11-12 10:58:12
By :
taewengja
View :
874
Reply :
9
ตอบความคิดเห็นที่ : 1 เขียนโดย : webmaster เมื่อวันที่ 2010-11-12 11:44:00
รายละเอียดของการตอบ ::
แก้ตามนี้ค่ะ แต่ยังไม่ได้ค่ะ
AjaxGetFill
<!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" />
<!-- TemplateBeginEditable name="doctitle" -->
</head>
<body>
<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
$strProduct = trim($_POST["tItemNO"]);
$objConnect = mysql_connect("localhost","root","adtbase") or die("Error Connect to Database");
$objDB = mysql_select_db("baseadt");
$strSQL = "SELECT * FROM item WHERE ITEM_NO = '".$strItem."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
if($objResult)
{
echo $objResult["ITEM_NO"]."|".$objResult["ITEM_NAME"];
}
mysql_close($objConnect);
?>
</body>
</html>
AjaxAutoFill
<?php
?>
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(fItemNO,fItemName,fSpec) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'AjaxGetFill.php';
var pmeters = "tItemNO=" + encodeURI( document.getElementById(fItemNO).value);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
//if(HttPRequest.readyState == 3) // Loading Request
//{
//document.getElementById(fProductName).innerHTML = "..";
//}
if(HttPRequest.readyState == 4) // Return Request
{
var myProduct = HttPRequest.responseText;
if(myProduct != "")
{
var myArr = myProduct.split("|");
document.getElementById(fItemname).value = myArr[0];
document.getElementById(fSpec).value = myArr[1];
}
}
}
}
</script>
<body>
<h1>Auto Fill Form</h1>
<form name="frmMain">
<table width="390" border="1">
<tr>
<th width="84">ItenNO </th>
<th width="185">ItemName </th>
<th width="99">Spec</th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItenNO1" id="txtItemNO1" size="5" OnChange="JavaScript:doCallAjax('txtItemNO1','txtItemName1','txtSpec1');">
</div></th>
<th><input type="text" name="txtItemName1" id="txtItemName1" size="30"></th>
<th><input type="text" name="txtSpec1" id="txtSpec1" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItemNO2" id="txtItemNO2" size="5" OnChange="JavaScript:doCallAjax('txtItemNO2','txtItemName2','txtSpec2');">
</div></th>
<th><input type="text" name="txtItemName2" id="txtItemName2" size="30"></th>
<th><input type="text" name="txtSpec2" id="txtSpec2" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItemNO3" id="txtItemNO3" size="5" OnChange="JavaScript:doCallAjax('txtItemNO3','txtItemName3','txtSpec3');">
</div></th>
<th><input type="text" name="txtItemName3" id="txtItemName3" size="30"></th>
<th><input type="text" name="txtSpec3" id="txtSpec3" size="10"></th>
</tr>
</table>
</form>
</body>
</html>
มันกลายเป็นว่าไม่โชว์ไรเลยค่ะ ไม่รู้จะไปแก้ตรงไหนค่ะ
Date :
2010-11-12 14:26:30
By :
taewengja
ใช่ที่เดิมที่ทำเมื่อวานหรือเปล่าครับ ทำโปรเจ็คจบป่ะเนี่ยะ
ฐานข้อมูลหน่ะ ผมสมมุติเอาหน่ะ
Quote: -- ----------------------------
-- Table structure for item
-- ----------------------------
DROP TABLE IF EXISTS `item`;
CREATE TABLE `item` (
`id` int(11) NOT NULL auto_increment,
`item_name` text,
`item_no` text,
`spec` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of item
-- ----------------------------
INSERT INTO `item` VALUES ('1', 'Db Wheel', 'Db Wheel', 'SDC140');
INSERT INTO `item` VALUES ('2', 'Db Test', 'Db Test', 'SDC150');
INSERT INTO `item` VALUES ('3', 'Db Unknow', 'Db Unknow', 'SDC160');
Code (PHP)
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_connection = "localhost";
$database_connection = ""; // ตรงนี้ใส่ชื่อฐานข้อมูลของคุณ
$username_connection = ""; // user
$password_connection = ""; // password
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_connection,$connection);
mysql_query("SET NAMES UTF8");
?>
<!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>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#select').change(function(){
var url = "test2.php?id="+ $(this).val();
$.getJSON(
url ,
function(resp){
for(var i=0;i<resp.length;i++){
$('#Item').val(resp[i].item_name); // ตรงนี้ วนลูปตามฟิวที่ดึงมาจากฐานข้อมุลเลยครับ resp[i].item_name
$('#Spec').val(resp[i].spec);
}
}
);
})
});
</script>
</head>
<body>
<form id="frm" name="frm" method="post" action="">
<?
//include('connect.php');
$sql_itemno = "select * from item ";
$result_itemno = mysql_query($sql_itemno) or die ("Error Query [".$sql_itemno."]"); ;
?>
<select name="select" id="select">
<option value=""> => Select Item No<= </option>
<?
while($result = mysql_fetch_array($result_itemno ))
{
?>
<option value="<?=$result["id"];?>"> <?=$result["item_no"];?></option>
<?
}
?>
</select>
Item <input type="text" name="Item" id="Item" />
Spec <input type="text" name="Spec" id="Spec" />
</form>
</body>
</html>
ไฟล์ test2.php
Code (PHP)
<?php
$id = $_GET['id']; // รับค่าไอดีที่ส่งมา
$mysql = mysql_connect('localhost', '', '');
mysql_select_db(''); // ตรงนี้ใส่ชื่อฐานข้อมูลของคุณ
$query = 'SELECT * FROM item WHERE id = "'.$id.'"';
$res = mysql_query($query);
// iterate over every row
while ($row = mysql_fetch_assoc($res)) {
// for every field in the result..
for ($i=0; $i < mysql_num_fields($res); $i++) {
$info = mysql_fetch_field($res, $i);
$type = $info->type;
$row[$info->name] = $row[$info->name];
}
$rows[] = $row;
}
// JSON-ify all rows together as one big array
echo json_encode($rows);
mysql_close($mysql);
// ซึ่งทั้งหมดของโค้ดนี้ผมก็อบมาจาก เว้บนี้ http://php.net/manual/en/function.json-encode.php
?>
ซึ่งโค้ดในไฟล์ test2.php ผมก้อบโค้ดมาจาก http://php.net/manual/en/function.json-encode.php ครับ
Date :
2010-11-12 14:40:16
By :
ไวยวิทย์
ตอบความคิดเห็นที่ : 4 เขียนโดย : ไวยวิทย์ เมื่อวันที่ 2010-11-12 14:40:16[/quote-no
ขอบคุณมากนะค่ะ ที่ช่วย listmenu ทำได้แล้วคะ่
แต่ว่าจะทำแบบป้อนรหัส item เข้า texbox แล้วให้โชว์ข้อมูลจากฐานข้อมูลค่ะ
จากโค้ดข้างบนอ่ะค่ะ แก้ error แล้วมันไม่ได้ค่ะ
AjaxGetFill
<!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" />
<!-- TemplateBeginEditable name="doctitle" -->
</head>
<body>
<?php
/*** By Weerachai Nukitram ***/
/*** http://www.ThaiCreate.Com ***/
$strProduct = trim($_POST["tItemNO"]);
$objConnect = mysql_connect("localhost","root","adtbase") or die("Error Connect to Database");
$objDB = mysql_select_db("baseadt");
$strSQL = "SELECT * FROM item WHERE ITEM_NO = '".$strItem."' ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery);
if($objResult)
{
echo $objResult["ITEM_NO"]."|".$objResult["ITEM_NAME"];
}
mysql_close($objConnect);
?>
</body>
</html>
AjaxAutoFill
<?php
?>
<html>
<head>
<title>ThaiCreate.Com Ajax Tutorial</title>
</head>
<script language="JavaScript">
var HttPRequest = false;
function doCallAjax(fItemNO,fItemName,fSpec) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'AjaxGetFill.php';
var pmeters = "tItemNO=" + encodeURI( document.getElementById(fItemNO).value);
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
//if(HttPRequest.readyState == 3) // Loading Request
//{
//document.getElementById(fProductName).innerHTML = "..";
//}
if(HttPRequest.readyState == 4) // Return Request
{
var myProduct = HttPRequest.responseText;
if(myProduct != "")
{
var myArr = myProduct.split("|");
document.getElementById(fItemname).value = myArr[0];
document.getElementById(fSpec).value = myArr[1];
}
}
}
}
</script>
<body>
<h1>Auto Fill Form</h1>
<form name="frmMain">
<table width="390" border="1">
<tr>
<th width="84">ItenNO </th>
<th width="185">ItemName </th>
<th width="99">Spec</th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItenNO1" id="txtItemNO1" size="5" OnChange="JavaScript:doCallAjax('txtItemNO1','txtItemName1','txtSpec1');">
</div></th>
<th><input type="text" name="txtItemName1" id="txtItemName1" size="30"></th>
<th><input type="text" name="txtSpec1" id="txtSpec1" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItemNO2" id="txtItemNO2" size="5" OnChange="JavaScript:doCallAjax('txtItemNO2','txtItemName2','txtSpec2');">
</div></th>
<th><input type="text" name="txtItemName2" id="txtItemName2" size="30"></th>
<th><input type="text" name="txtSpec2" id="txtSpec2" size="10"></th>
</tr>
<tr>
<th>
<div align="center">
<input type="text" name="txtItemNO3" id="txtItemNO3" size="5" OnChange="JavaScript:doCallAjax('txtItemNO3','txtItemName3','txtSpec3');">
</div></th>
<th><input type="text" name="txtItemName3" id="txtItemName3" size="30"></th>
<th><input type="text" name="txtSpec3" id="txtSpec3" size="10"></th>
</tr>
</table>
</form>
</body>
</html>
Date :
2010-11-12 14:56:29
By :
taewengja
ไม่รู้สิครับ ดูยาก
ตอนคุณเรียกใช้ฟัังชั่น คุณส่งค่าเข้ามาสามตัว function doCallAjax(fItemNO,fItemName,fSpec) {
แล้วตอนส่งพารามิเตอร์ออกไป ไปเรียกใช้จากอะไรครับ ตรง document.getElementById(fItemNO).value นี่หน่ะมาจากไหน
var pmeters = "tItemNO=" + encodeURI( document.getElementById(fItemNO).value);
Date :
2010-11-12 15:10:13
By :
ไวยวิทย์
คุณเข้าใจอะไรผิดไปเปล่าครับ ไอ้ตรงนี้ var pmeters = "tItemNO=" + encodeURI( document.getElementById(fItemNO).value); หน่ะ
ต้องส่งไปให้ไฟล์ AjaxGetFill.php นี้สิ แล้ว AjaxGetFill.php ค่อยประมวลผลแล้วส่งกลับมาเป็น var myProduct = HttPRequest.responseText; ซึ่งคุณก็ได้ทำการตัดแล้วใ่ส่ลงใน textbox
Date :
2010-11-12 15:28:36
By :
ไวยวิทย์
Load balance : Server 00