请帮我解决这个案子。我在下面有一个代码:
<script>
function getXMLHTTP() {
var xmlhttp = false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e)
{
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}
function getCity(url, id1) {
var req = getXMLHTTP(url);
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
document.getElementById(id1).value=req.responseText;
// document.getElementById(id2).value=req.responseText;
} else {
alert("There was a problem while using XMLHTTP:'n" + req.statusText);
}
}
}
req.open("GET", url, true);
req.send(null);
}
}
</script>
<?php
echo "
<tbody>
<tr>
<td class='td'><input type='text' size='6' name='kode_barang" ."' maxlength='6' onchange='javascript:this.value=this.value.toUpperCase();' onkeyup='getCity('"search.php?kode_barang='"+this.value, '"nama_barang" . "'",'"harga_barang" . "'");' id='kode_barang'></td>
<td class='td'><input type='text' size='22' name='nama_barang" . "' id='nama_barang" . "' readonly tabindex='1'></td>
<td class='td'><input type='text' size='22' name='harga_barang" . "' id='harga_barang" . "' tabindex='1'></td>
</tbody>
";
?>
搜索.php文件 :
include_once('config.php');
if (isset($_GET['kode_barang']))
{
$qry = "SELECT nama_barang, harga_barang FROM t_barang WHERE kode_barang = '" . $_GET['kode_barang'] . "'";
$sql = mysql_query($qry);
$ary = mysql_fetch_array($sql);
echo $ary['nama_barang'];
echo $ary['harga_barang'];
}
这是关于如何根据kode_barang输入查找nama_barang和harga_barang。例如,如果我在文本框中输入kode_barang kode_barang然后在text_box nama_barang中输入,harga_barang将自动设置数据库中的信息。
我已经尝试过此代码,但它在 2 个文本框nama_barang中设置了 1 个信息(nama_barang 和 harga_barang)。应在每个文本框中设置。
所以,我的问题是:如何设置信息nama_barang和harga_barang从数据库到每个文本框?
感谢您的帮助。谢谢。
将你的getCity()函数替换为下面的函数
function getCity(url, id1, id2) {
var req = getXMLHTTP(url);
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
var res = JSON.parse(req.responseText);
document.getElementById(id1).value=res.nama_barang;
document.getElementById(id2).value=res.harga_barang;
} else {
alert("There was a problem while using XMLHTTP:'n" + req.statusText);
}
}
}
req.open("GET", url, true);
req.send(null);
}
}
并替换搜索中的部分代码.php
从
$ary = mysql_fetch_array($sql);
echo $ary['nama_barang'];
echo $ary['harga_barang'];
自
$ary = mysql_fetch_array($sql);
echo json_encode($ary);
问题是,您在 getCity() 函数。
发送默认值的更新
替换以下部件
if (isset($_GET['kode_barang']))
{
$qry = "SELECT nama_barang, harga_barang FROM t_barang WHERE kode_barang = '" . $_GET['kode_barang'] . "'";
$sql = mysql_query($qry);
$ary = mysql_fetch_array($sql);
echo $ary['nama_barang'];
echo $ary['harga_barang'];
}
跟
if (isset($_GET['kode_barang']))
{
$qry = "SELECT nama_barang, harga_barang FROM t_barang WHERE kode_barang = '" . $_GET['kode_barang'] . "'";
$sql = mysql_query($qry);
if (mysql_num_rows($sql) > 0)
{
$ary = mysql_fetch_array($sql);
echo json_encode($ary);
}
else
{
echo json_encode(array("nama_barang" => "", "harga_barang" => ""));
}
}
* 无论如何,这不是最佳实践,因为它为每个 KeyUp 事件发出数据库请求。 但可以帮助您解决。
将 php 文件从:
echo $ary['nama_barang'];
echo $ary['harga_barang'];
自
echo json_encode($ary);
并将您的 JS 函数从
document.getElementById(id1).value=req.responseText;
document.getElementById(id2).value=req.responseText;
自
var response = JSON.parse(responseText);
document.getElementById(id1).value=response.nama_barang;
document.getElementById(id2).value=response.harga_barang;