2010-02-28 2 views
1

pour recueillir la valeur des cases à cocher:tableau de jquery de case à cocher non envoyé au fichier php

var filtersArray = $("input[@name='filters']:checked").map(function(i,n){ 
         return $(n).val(); 
        }).get(); 

Envoyer des messages à fichier php

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    'filters[]': filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

Php ne reçoit pas le tableau, peu importe ce que je faire pour ce je:

$postedKeywords = $_POST['keywords']; 
$postedFilters = $_POST['filters[]']; 

Mots-clés est affiché, les filtres [] ne sont pas. J'ai essayé .... print_r aucun résultat ..

J'ai essayé:

foreach($_POST as $val) 
    echo $val; 

-je obtenir la valeur de $ _POST [ 'mots clés'] et tableau pour $ _POST [ 'filtres'] Ainsi, il est envoyé mais pour une raison quelconque, je ne peux pas utiliser les valeurs.

Répondre

2

Avez-vous essayé:

$.post(
    'php/performSearch.php', { 
     keywords: $('#keywords').val(), 
     filters: filtersArray 
    }, 
    function(data) { 

    } 
); 

Cela envoie une requête POST qui pourrait ressembler à ceci:

filters[]=1&filters[]=2 
+0

qui est la solution. Je vous remercie. J'ai lu quelques questions ici et la solution pour le même problème était de mettre quelques []. Je suppose que je n'étais pas censé le faire. – user253530

+0

Oh et jetez un coup d'œil à la fonction d'aide 'jQuery.param()' (http://api.jquery.com/jQuery.param/) – Mottie

0

Utilisez ceci:

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    'filters\[\]': filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

Ou essayez cela aussi:

$.post("php/performSearch.php", { 
    keywords: $('#keywords').val(), 
    filters: filtersArray}, 
    function(data){ 
     //alert(data); 
    }); 

Et pour obtenir en php, ne pas utiliser [], il suffit d'utiliser:

$postedKeywords = $_POST['keywords']; 
$postedFilters = $_POST['filters']; 
Questions connexes