如何使用jquery根据在第一个文本框中输入的值填充第二个文本框?

时间:2012-01-09 18:10:53

标签: php jquery

我正在尝试根据从数据库的第一个文本框字段中输入的值填充文本字段,但是当我在第一个文本框字段中输入一些值时,我没有收到任何响应。请检查代码

使用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);

    }

?>

2 个答案:

答案 0 :(得分:0)

您检查过JavaScript错误控制台吗?您的JavaScript第一行上的{匹配在哪里?

答案 1 :(得分:0)

首先,我从未使用过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代码会返回一个数组,而不是一个对象,所以你也必须改变它。

如果这不能解决您的问题,请在您的问题中添加更多信息/代码,以便我们更好地理解