2012-01-09 52 views
1

我想填充基於從數據庫的第一個文本框字段中輸入的值的文本字段,但我沒有得到任何響應,當我輸入一些值到第一個文本框字段。請檢查代碼如何根據使用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); 

    } 

?> 
+0

你試過在Chrome或螢火調試你的反應?你的PHP文件是否工作? – j08691 2012-01-09 18:13:53

+0

你真的需要從一些有效的東西開始,然後複雜化。如果這是你的實際代碼,那麼第一件顯而易見的事就是jQuery沒有準備好文檔。我假設你有問題切割粘貼,因爲它顯然不會做任何事情,儘管事實上你正在使用不受保護的用戶輸入來進行數據庫查詢。 這不僅是壞的,而且是危險的 – Sinetheta 2012-01-09 18:53:14

+0

查看代碼,這行代碼如下:$ q =「SELECT CONCAT(address,',',city,',',state)AS caddress,cname,tin FROM WHERE錫= $噸;沒有一個「在它的末尾。這是一個由粘貼到Stack Overflow引起的工件嗎?或者這也出現在代碼中? – Sean 2012-01-16 17:29:23

回答

0

你檢查,一個JavaScript錯誤控制檯? {你的JavaScript的第一行匹配了什麼?

0

首先,我從來沒有用過mysqli。 mysqli_query是否與mysql_fetch_array一起使用?

在任何情況下,我看到了一個潛在的問題是在這裏:

while ($row = mysql_fetch_array($r)) { 
    $arr=array('cname'=>$cname, 'caddress'=>$caddress); 
    echo json_encode($arr); 
} 

這不會是一個正確的JSON除非結果計數爲1。例如,如果你得到兩個結果,你會產生不正確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代碼將返回一個數組,而不是一個對象,因此您必須更改它。

如果這沒有解決您的問題,加上一些更多的信息/代碼,你的問題,使我們能夠更好地理解它

+0

謝謝解決了這個問題 – Vijesh 2012-01-10 02:00:06

相關問題