2012-01-09 4 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

+0

Вам действительно нужно начать с чего-то, что работает и продвигаться по сложности. Если это ваш фактический код, то первое, что выделяется, заключается в том, что jQuery не готов к подготовке документа. Php Я предполагаю, что у вас были проблемы с вырезанием, потому что это явно ничего не сделает, и это несмотря на то, что вы используете незащищенный пользовательский ввод для создания запросов к базе данных. Это не просто плохо, это опасно – Sinetheta

+0

Посмотрите на код, эта строка здесь: $ q = "SELECT CONCAT (адрес, ',', город, ',', состояние) AS caddress, cname, tin FROM company WHERE tin = $ tn; не имеет «в конце». Это артефакт, вызванный вставкой в ​​Stack Overflow, или это также присутствует в коде? – Sean

ответ

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

Смежные вопросы