我正试图根据在数据库的第一个文本框字段中输入的值填充文本字段,但在第一个文本盒字段中输入一些值时没有得到任何响应。请检查代码
Javascript:
<script type="text/javascript">
$("#tin").blur(function () {
$.post("tin_handle.php",
{
tin: $(this).val()
},
function (data){
$("#cname").val(data.cname);
$("#caddress").val(data.caddress);
});
</script>
Tin_handle.php:
<?php
$tn = trim($_POST['tin']);
require_once("sqlconnect.php");
$q="SELECT CONCAT(address,',',city,',',state) AS caddress,cname,tin FROM company WHERE tin=$tn;
$r = @mysqli_query ($dbc, $q);
//$arr=array();
while ($row = mysql_fetch_array($r))
{
$arr=array('cname'=>$cname, 'caddress'=>$caddress);
echo json_encode($arr);
}
?>
您检查过JavaScript错误控制台吗?JavaScript第一行的{在哪里匹配?
首先,我从未使用过mysqli。mysqli_query
和mysql_fetch_array
一起工作吗?
无论如何,我看到的一个潜在问题是:
while ($row = mysql_fetch_array($r)) {
$arr=array('cname'=>$cname, 'caddress'=>$caddress);
echo json_encode($arr);
}
除非结果计数为1,否则这将不是一个正确的json。例如,如果你得到两个结果,你会生成一个不正确的JSON:
{"cname":"CNAME1","caddress":"CADDRESS1"}{"cname":"CNAME2","caddress":"CADDRESS2"}
如果您需要读取多行,循环应该是:
$arr = array();
while ($row = mysql_fetch_array($r)) {
//...
$arr[] = array('cname'=>$cname, 'caddress'=>$caddress);
}
echo json_encode($arr);
但是,javascript代码将返回一个数组,而不是一个对象,因此您也必须更改它。
如果这不能解决您的问题,请在您的问题中添加更多信息/代码,以便我们更好地理解