2012-09-05 32 views
6

जब मैं मेज पर मेरी डेटाबेस से डेटा प्राप्त करने का प्रयास है, मैं इस त्रुटि मिलती है:DataTables में पंक्ति 0 के लिए डेटा स्रोत से अनुरोध किया गया अज्ञात पैरामीटर '1'

DataTables warning (table id = 'student_table'): Requested unknown 
parameter '1' from the data source for row 0 

नीचे जावास्क्रिप्ट कि मैं प्रयोग किया जाता है

<script type="text/javascript" charset="utf-8"> 
$(document).ready(function() { 
    $('#student_table').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sServerMethod": "POST", 
     "sAjaxSource": "<?php echo base_url()?>index.php/data/all" 
    });    
}); 
</script> 

JSON डेटा पुनः प्राप्त:

{"sEcho":0,"iTotalRecords":3, 
"iTotalDisplayRecords":3, 
"aaData":[["85","t1","1D"],["74","test475","4A"], 
["777","maiz","5"]],"sColumns":"id,name,class"} 

नीचे मेरी मेज है:

<table class="datatable tables" id="student_table"> 
    <thead> 
     <tr> 
      <th>ID</th> 
      <th>Name</th> 
      <th>Class</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td class="dataTables_empty">Loading data from server</td> 
     </tr> 
    </tbody> 
</table> 

PHP कोड (प्रज्वलित datatables)

$this->load->library('datatables'); 

$this->datatables->select('admission,name,class'); 
$this->datatables->from('students'); 
echo $this->datatables->generate(); 

मैं CodeIgniter और DataTables उपयोग कर रहा हूँ।

मुझे यह त्रुटि क्यों मिल रही है और तालिका में डेटा कैसे पुनर्प्राप्त करें?

उत्तर

1

आप डेटा प्राप्त करने के लिए POST विधि का उपयोग कर रहे हैं। यदि आप php का पालन करते हैं तो उदाहरण datatables के साथ प्रदान किया गया है, तो GET विधि का उपयोग किया जाता है। मुझे लगता है कि जब आप सॉर्टिंग या सभी अनुरोधों को खोजते हैं तो जीईटी होते हैं।

+0

मैंने दोनों जीईटी और पोस्ट की कोशिश की लेकिन मुझे एक ही त्रुटि मिल गई। – LiveEn

+0

त्रुटि php भाग में होनी चाहिए, क्या आप इसे दिखा सकते हैं? – JvdBerg

+0

मैंने मुख्य पोस्ट में php code (ignated datatables) जोड़ा है। – LiveEn

0

विचारों जो मदद कर सकता है की युगल ...

  1. सुनिश्चित करें कि सर्वर से आपकी प्रतिक्रिया सही ढंग से JSON स्वरूपित है, सही हेडर के साथ करें। जैसे https://stackoverflow.com/a/4064468/661584 खुद को इग्निटर/php के बारे में निश्चित नहीं है लेकिन यह एक मुद्दा हो सकता है।

  2. सुनिश्चित नहीं हैं कि sColumns परम अपने दम पर वहाँ सही है, तो लगता है कि ग्राहक पर कॉलम की पुनर्व्यवस्था के लिए है ... और केवल SNAME के ​​साथ प्रयोग किया http://datatables.net/usage/columns#sName और http://datatables.net/usage/server-side

ताकि नज़र आ सकते हैं इसे गड़बड़ कर रहो।

  1. यदि यह कुछ और है, तो शायद here पर उत्तर देखें ... कुछ मदद हो सकती है।

गुड लक

14

मैं भी यही समस्या हुई। यहां मुद्दा यह है:

<tr> 
      <td class="dataTables_empty">Loading data from server</td> 
</tr> 

आप तीन <TH> लेकिन केवल एक <td> जोड़ा जा रहा है दो और <td> अपने त्रुटि को ठीक होगा। एक और बात, अगर कोई डेटा उपलब्ध नहीं है यह स्वचालित रूप से संदेश प्रदर्शित आप message.In इस मामले तो आप इस निकाल सकते हैं प्रदर्शित करने की जरूरत नहीं है क्योंकि यह स्वचालित रूप से किया जाएगा:

<tr> 
      <td class="dataTables_empty">Loading data from server</td> 
</tr> 

संदेश अनुकूलित करने के लिए आदेश में इसे "sEmptyTable": "Loading data from server"

$('.datatable).dataTable({ 
    "bFilter": false, 
    "bPaginate": false, 
    "bLengthChange": false, 
    "bInfo": false, 
    "oLanguage": { 
    "sEmptyTable": '', 
    "sInfoEmpty": '' 
    }, 
    "sEmptyTable": "Loading data from server" 
}); 
+0

मैं तुमसे प्यार करता हूँ। बस इसे समझने की कोशिश करने के लिए हमेशा खर्च किया। – Chris

+0

मेरा कोड colspans का उपयोग करता है, उम्मीद है कि colpans इसका कारण नहीं है भले ही वे सही हों! – Andy

0

हमारे पास समान समस्याएं थीं ...

लेकिन, इससे पहले कि आप पागल हो जाएं - तालिका में डेटा की जांच करें। हमारे मामले में, हमारे डेटा में डेटा को पॉप्युलेट करने वाले डेटा में हाइपरलिंक्स और घुंघराले उद्धरण होते थे - जब डेटा CSV फ़ाइल से डेटा अपलोड किया गया था तो उन उद्धरण घुमावदार उद्धरण छीन रहे थे। लघु कहानी यह है कि आईई इसके साथ सौदा नहीं कर सका, लेकिन क्रोम और फ़ायरफ़ॉक्स ने इसे अनदेखा कर दिया।