2013-12-20 2 views
0

Я видел некоторые другие сообщения в Stackoverflow, которые были связаны. Пробовал этот код, но для меня это не сработало.Извлечь данные JSON с помощью AJAX

У меня есть код, который будет получить данные из базы данных, как это:

function getWrkNoTest($wrkno){ 

    $conf = new BBAgentConf(); 
    $log = new KLogger($conf->get_BBLogPath().$conf->get_BBDateLogFormat(), $conf->get_BBLogPriority()); 
    $connection = MySQLConnection(); 

    $getWrkNoTest =""; 
    $lArrayIndex = 0; 

     $query = mysql_query("SELECT a.jobinfoid, a.WRKNo, a.cate, a.det, a.compclosed, a.feedback, a.infoID, b.callerid, b.customername FROM 
bb_jmsjobinfo a 
LEFT JOIN bb_customer b ON a.customerid = b.customerid 
WHERE a.WRKNo = '$wrkno';"); 

    $result = mysql_query($query); 

    $log->LogDebug("Query[".$query."]"); 

    while ($row = mysql_fetch_array($result)){ 
      $getWrkNoTest = array("jobinfoid"=>$row['jobinfoid'], 
       "WRKNo"=>$row['WRKNo'], 
       "cate"=>$row['cate'], 
       "det"=>$row['det'], 
       "compclosed"=>$row['compclosed'], 
       "feedback"=>$row['feedback'], 
       "infoID"=>$row['customerid'], 
       "customerid"=>$row['infoID'], 
       "callerid"=>$row['callerid'], 
      "customername"=>$row['customername']); 

      $iList[$lArrayIndex] = $getWrkNoTest; 
      $lArrayIndex = $lArrayIndex + 1; 

     } 
     $QueryResult = print_r($getWrkNoTest,true); 
     $log->LogDebug("QueryResult[".$QueryResult."]"); 
     closeDB($connection); 
     return $iList; 

} 

Этот код будет подключаться к MySQL, базы данных и извлечения данных из базы данных .Lets сказать, что это имя файла mysql.php .После что у меня есть файл с именем getjson.php, этот файл будет получать данные из mysql.php и отправить АЯКС .Это код файла ниже:

<?php 
//getCustomerNames will display all customer name that use the same number phone ,displayed on *top callername slection 

include 'mysql.php'; 

     $wrkno = $_GET["wrkno"]; 

     $jms = getWrkNoTest($wrkno); 

     foreach($jms as $findContact){ 
      $findContact['jobinfoid']; 
      $findContact['WRKNo'] ; 
      $findContact['cate'] ; 
      $findContact['det'] ; 
      $findContact['compclosed'] ; 
      $findContact['feedback'] ; 
      $findContact['customerid'] ; 
      $findContact['infoID']; 
      $findContact['infoID']; 
      $findContact['customername'] ; 
      $matches[] = $findContact; 
     } 
     echo json_encode($matches); 
?> 

Тогда это мой Ajax код, который будет анализировать все данные к html:

$.getJSON("jsonJms.php", {wrkno: wrkno}, function(data) { 
       $.each(data, function(key,val) {        
        $("#cname").val(val.customername); 
        $("#cnumb").val(val.callerid); 
        $("#comp").val(val.compclosed); 
        $("#cate").val(val.cate); 
        $("#det").val(val.det); 
        $("#feed").val(val.feedback); 


       }); 
      }); 

Когда это выполняется в браузере, просто дайте выход Null. Пожалуйста, помогите мне. Любая помощь, которую я буду признателен в своей жизни.

+1

Если вы посмотрите на форму ответа сервера в firebug, что на самом деле возвращается с jsonJms.php? – Jiminyjetson

+0

@Jiminyjetson Это не дает никакого ответа оттуда – art

+0

ОК, поэтому ваш запрос GET возвращает пустой ответ? Если вы перейдете непосредственно на [ваш localhost url] /jsonJMS.php?workno= [тестовое значение], он все равно ничего не возвращает? – Jiminyjetson

ответ

0

Try ниже вариантов,

указан тип содержимого с header('Content-type: application/json');, а затем повторить ваши данные в jsonJms.php. [Проверьте, получаете ли вы данные в данных JSON, попав прямо в адресную строку URL-адреса с назначением переменной wrkno].

Измените код, как показано ниже,

$.getJSON("jsonJms.php", {wrkno: wrkno}, function(data) {            
          $("#cname").val(data.customername); 
          $("#cnumb").val(data.callerid); 
          $("#comp").val(data.compclosed); 
          $("#cate").val(data.cate); 
          $("#det").val(data.det); 
          $("#feed").val(data.feedback); 

     }) 
    .done(function() { 
    alert("second success"); 
    }) 
    .fail(function() { 
    alert("error"); 
    }) 
    .always(function() { 
    alert("complete"); 
    }); 

Надеется, что это будет поможет вам. :)

0

Если ничто не возвращается с уровня PHP, тогда это ваша проблема. Убедитесь, что ваш запрос БД фактически возвращает данные, если да, проверьте, что с ним делается.

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