Bonjour,

J'ai découvert un plugin jQuery datatable qui est très intéressant mais je rencontre un problème pour filtrer une colonne,
J'ai lu la documentation et chercher sur internet mais rien a faire je n'arrive pas à envoyer un paramètre du plugin.

Je m'explique, sur l'exemple coter PHP il est écrit :
[code]
/*

  • Filtering
  • NOTE this does not match the built-in DataTables filtering which does it
  • word by word on any field. It's possible to do here, but concerned about efficiency
  • on very large tables, and MySQL's regex functionality is very limited
    */
    $sWhere = "";
    if ( isset($_GET['sSearch']) && $_GET['sSearch'] != "" ){
    $sWhere = "WHERE (";
    for ( $i=0 ; $i<count($aColumns) ; $i++ ){
    $sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string( $_GET['sSearch'] )."%' OR ";
    }
    $sWhere = substr_replace( $sWhere, "", -3 );
    $sWhere .= ')';
    }

/ Individual column filtering /
for ( $i=0 ; $i<count($aColumns) ; $i++ ){
if ( isset($GET['bSearchable'.$i]) && $GET['bSearchable'.$i] == "true" && $GET['sSearch'.$i] != '' ){
if ( $sWhere == "" ){
$sWhere = "WHERE ";
}else{
$sWhere .= " AND ";
}
$sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string($GET['sSearch'.$i])."%' ";
}
}
[/code]

J'ai donc chercher le moyen d'envoyer la variable bSearchable_4 (car c'est cette colonne que je veut filtrer) sur l'exemple de la documentation coter js il est écrit :

[code]
// Using aoColumnDefs
$(document).ready( function() {
$('#example').dataTable( {
"aoColumnDefs": [
{ "bSearchable": false, "aTargets": [ 0 ] }
] } );
} );

// Using aoColumns
$(document).ready( function() {
$('#example').dataTable( {
"aoColumns": [
{ "bSearchable": false },
null,
null,
null,
null
] } );
} );
[/code]

lien de la documentation : [url=http://datatables.net/usage/columns]columns[/url]

Comme on peut le voir aucun valeur n'est définie pourtant dans le code PHP citer plus haut, il y à cette varaible :

$GET['bSearchable'.$i]

Donc voici mon code jQuery:
[code]
$('#datatableTous').dataTable({
"bProcessing": true,
"bServerSide": true,
"sPaginationType": "full_numbers",
"iDisplayLength": 10,
"bSortClasses": false,
"sAjaxSource": "php/app/domaine/server_processing.php",
// Définie la recherche global
"oSearch": {"sSearch": "1"},
"aoColumns":[
null,
null,
null,
null,
null,
{
"mDataProp": null,
"sClass": "center",
"sDefaultContent": '<a class="btn btn-info edit" href="#"><i class="icon-edit icon-white"></i>Edit</a><a class="btn btn-danger" href="#"><i class="icon-trash icon-white"></i>Delete</a>',
"bSortable": false,
"bSearchable": false
}
]
});
[/code]

j'ai également regarder dans firebug les paramètres envoyés :

[code]
bRegex false
bRegex_0 false
bRegex_1 false
bRegex_2 false
bRegex_3 false
bRegex_4 false
bRegex_5 false
bSearchable_0 true
bSearchable_1 true
bSearchable_2 true
bSearchable_3 true
bSearchable_4 true
bSearchable_5 false
bSortable_0 true
bSortable_1 true
bSortable_2 true
bSortable_3 true
bSortable_4 true
bSortable_5 false
iColumns 6
iDisplayLength 10
iDisplayStart 0
iSortCol_0 0
iSortingCols 1
mDataProp_0 0
mDataProp_1 1
mDataProp_2 2
mDataProp_3 3
mDataProp_4 4
mDataProp_5 5
sColumns
sEcho 1
sSearch 1 // Valeur de la recherche global
sSearch_0
sSearch_1
sSearch_2
sSearch_3
sSearch_4 // ici la variable que je cherche à envoyer pour récupéré les enregistrement qui on un type_id=1 et non la totaliter
sSearch_5
sSortDir_0 asc
[/code]

comme on peut le voir, rien est envoyer

J'ai modifier la variable "aoColumns" par sa :

[code]
aoColumns: [
null,
null,
null,
null,
{ type: "number", values: [ 1 ] },
{
"mDataProp": null,
"sClass": "center",
"sDefaultContent": '<a class="btn btn-info edit" href="#"><i class="icon-edit icon-white"></i>Edit</a><a class="btn btn-danger" href="#"><i class="icon-trash icon-white"></i>Delete</a>',
"bSortable": false,
"bSearchable": false
}
]
[/code]

j'ai pu regarder différent site avec mes différentes recherche rien y fait :( Si quelqu'un pourrais m'aider car la je suis complet larguer :(

Merci par avance.

WebMaster Junior chez [url=http://www.123plantes.com]123plantes[/url]

Aucune réponse