2017-02-01 1 views
0

Извлечение значений из таблицы, ее работа отлично. Когда таблица пуста, я получаю ошибку jer. Как я могу справиться с этой ошибкой?Как обрабатывать ошибку формата json показывает, что таблица пуста

мой SQL запрос приводится ниже, я использую Рамочный PHP Zend

public function getProductsAction(){ 

    $oProductModel = new Application_Model_Db_Table_Products(); 
    $oSelect = $oProductModel->fetchAllProductItems(); 

    echo Zend_Json::encode($this->_helper->DataTables($oSelect, array('product_id','e.ename as employee_name','name','brand','conditions','about','image_path','reserved_price','Max(b.bid_amount) as amount'))); 

} 

и просмотр страницы

$(document).ready(function(){ 

    jQuery('#product-table').dataTable({ 
     <?php if(Qsm_User::isAdmin()){ ?> 
      "sDom": 'Tlfrtip', 
      "oTableTools": { 
       "sSwfPath": "/js/DataTables/extras/TableTools/media/swf/copy_csv_xls_pdf.swf", 
       "aButtons": [{ 
         "sExtends": "collection", 
         "sButtonText": 'Save <span class="caret" />', 
         "aButtons": [ "csv", "xls", "pdf" ] 
        }] 
      }, 
     <?php } ?> 
     "sPaginationType": "full_numbers", 
     "bProcessing": true, 
     "bServerSide": false, 
     "sAjaxSource": '/buyproduct/api/get-products', 

     "aoColumns": [ 
      {"sTitle":"ID", "bVisible":false}, 
      {"sTitle":"Emp Name", "bVisible":true}, 
      {"sTitle":"Product", "sWidth": '10%'}, 
      {"sTitle":"Brand", "sWidth": '10%'}, 
      {"sTitle":"Condition", "sWidth": '10%'}, 
      {"sTitle":"Description", "sWidth": '20%'}, 
      {"sTitle":"Image","sWidth": '18%', 
      "mData": null, 
      "bSearchable": false, 
      "bSortable": false, 
      "fnRender": function (oObj){ 
      var actions = ""; 
      actions += "<span class=''>\n\ 
      <img src='/uploads/gallery/" + oObj.aData[6] + "' alt='Image' title='Image' class='style_prevu_kit' width='0px' height='0px' />"; 
       actions +="</span>"; 
      return actions; 
      } 
      }, 
      {"sTitle":"Starting Bid Price", "sWidth": '10%'}, 
      {"sTitle":"Current Bid Price", "sWidth": '10%'}, 
      { 
       "sTitle":"Bid", 
       "sWidth": '17%', 
       "mData": null, 
       "bSearchable": false,        
       "bSortable": false, 
       "fnRender": function (oObj){ 
        var actions = ""; 
        actions += "<span class='data_actions iconsweet'>\n\ 
           <a title='Buy' href='/buyproduct/index/bid/id/" + oObj.aData[0] + "'><img src='/images/buy.png' alt='Buy' title='Buy' /></a>"; 
        actions +="</span>"; 
        return actions; 
       } 
      } 
      <?php if(Qsm_User::isAdmin()){ ?> 
      ,{ 
       "sTitle":"Transaction", 
       "sWidth": '22%', 
       "mData": null, 
       "bSearchable": false, 
       "bSortable": false, 
       "fnRender": function (oObj){ 
        var actions1 = ""; 
        actions1 += "<span class='data_actions iconsweet'>\n\ 
           <a title='Transaction' href='/buyproduct/index/transaction/id/" + oObj.aData[0] + "'><img src='/images/icons/edit3.png' alt='Edit' title='Transaction' /></a>"; 

        actions1 +="</span>"; 
        return actions1; 
       } 
      } 
      <?php } ?> 
     ] 
    });  

}); 

Пожалуйста, кто-нибудь помочь мне справиться с этой JSon ошибку форматированием

ответ

0

свое действие вернет пустую строку без условия строки, которая является недопустимой json-данными, проверьте значение, возвращенное с

$this->_helper->DataTables($oSelect, array('product_id','e.ename as employee_name','name','brand','conditions','about','image_path','reserved_price','Max(b.bid_amount) as amount')) 

если нулевые/или строки не повторить что-то подобное или пустых строковых данных

{ 
    "msg": "no-data" 
} 

Update:

public function getProductsAction(){ 

$oProductModel = new Application_Model_Db_Table_Products(); 
$oSelect = $oProductModel->fetchAllProductItems(); 
if($oSelect){ 
    echo Zend_Json::encode($this->_helper->DataTables($oSelect, array('product_id','e.ename as employee_name','name','brand','conditions','about','image_path','reserved_price','Max(b.bid_amount) as amount'))); 
}else{ 
    echo '{"msg": "no-data"}'; //or edit with empty data matching required by your view 
} 
} 
+0

, как использовать это в моем коде, вы можете, пожалуйста, объясните, где я должен использовать это –

+0

для отсутствия условия строки, только получаю эту ошибку, когда в таблице нет данных. Итак, как обрабатывать эту ошибку формата json. –

+0

не уверены в формате данных, возвращаемом вашим вспомогательным классом, если $ oSelect имеет значение null в состоянии пустой строки, используйте приведенный выше код в обновлении :, вы также можете обрабатывать условие пустой строки в вашем хелпер-> DataTables – Raj

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