2013-06-18 5 views
3

Я работаю на codeignitor и у меня есть проблема ..Передача аргументов sAjaxSource в JQuery DataTables

У меня есть функция контроллера details.php который принимает аргумент.

function details($id){ 
    $this->datatables 
    ->select('product_id,original_amount,quantity') 
    ->from('orders') 
    echo $this->datatables->generate(); 
     } 

Теперь мне нужно назвать это от взглядов то есть я хочу DataTable быть дисплей так

<script> 
$(document).ready(function() 
     { 
      $('#example').dataTable 
      ({ 
..... 
.... 
      'sAjaxSource' : 'admin/data/details', 
.... 
     ...... 
     }); 
</script> 

так вот как передать аргументы в то есть значение идентификатора $ sAjaxsource ....

+0

почему вы хотите передать идентификатор в детали метода – umefarooq

+0

вместо передачи в качестве аргументов использовать столб или Получ – Vamsi

+0

сэр я хочу сделать, где ('product_id', $ id) в подробном методе, поэтому я хочу передать значение –

ответ

15

fnServerParams

http://www.datatables.net/release-datatables/examples/server_side/custom_vars.html

$(document).ready(function() { 
    $('#example').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "scripts/server_processing.php", 
     "fnServerParams": function (aoData) { 
      aoData.push({ "name": "more_data", "value": "my_value" }); 
     } 
    }); 
}); 
+0

. Я получаю сообщение об ошибке Uncaught TypeError: Не удается прочитать свойство «match» undefined. Зачем ? – Mvram

+0

Я также получаю ту же ошибку «Не могу прочитать соответствие свойства« неопределенного ». вы можете указать некоторый намек на то, почему эта ошибка получается с использованием вашего решения – coderwill

+0

вам необходимо ввести данные в виде arraylike: aoData.push ({"name": "name1", "value": "val1"}, {"name": "name2", "value": "val2"}, {"name": "name3", "value": "val3"}); –

3

Я сам боролся с этой проблемой. Ответ Джона Мозеса не помог мне, а также ссылку, которую он дает ссылки на новую документацию, которая, я думаю, не учитывает старые версии данных.

Хотя, я выяснил, что текущая обработка на стороне сервера работает как jQuery, где более старые версии с «sAjaxSource» не работают таким образом.

Для меня я просто добавил свои параметры в URL-адрес sAjaxSource. Так что в вашем примере кода:

$customPHPvar = "mycustomvar"; 

<script> 
$(document).ready(function() { 
    $('#example').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "scripts/server_processing.php?customvar=<?php echo $customPHPvar; ?>", 
    }); 
}); 
</script> 

в server_processing.php

$_GET['customvar']; 
Смежные вопросы