2014-07-16 2 views
0

J'ai une table de cases à cocher et de texte qui est générée à partir d'une base de données. Lorsque je coche 2 cases sur 3 et que j'écris 2 cases de texte sur 3. tableau de 2 éléments a Checkbox et tableau a 3. Je textbox essayé d'utiliser array_filter mais il ne fonctionne pas ou quelque chose ...Je ne peux pas comprendre ce qui ne va pas avec cette boucle aussi array_filter peut-être être drôle

$textbox_array=array_filter($_POST['text']); 
$checkbox_array = $_POST['check']; 
    for ($i = 0; $i < count($checkbox_array); $i++) { 
     $textbox = $textbox_array[$i]; 
     $checkbox = $checkbox_array[$i]; 

     echo $textbox; 
     echo '-'; 
     echo $checkbox; 
    } 

je vérifie les cases à cocher 9 et 10, et de mettre les valeurs 1 et 2.

c'est ce que je reçois: 1-9-10 je devrais obtenir: 1-2-9-10

Aidez-moi s'il vous plaît.

+1

Des cases non cochées ne sont pas envoyés dans les données de poste, c'est le comportement attendu. Si pour une raison quelconque vous avez besoin d'eux envoyé, voir ici: http://stackoverflow.com/questions/1809494/post-the-checkboxes-that-are-unchecked – Steve

+0

Je n'ai pas besoin d'eux envoyé aussi je n'ai pas besoin de la boîtes de texte vides à envoyer. – Foogley

Répondre

1

Votre problème est que, avec array_filter() ->Array keys are preserved.

Vous devez appeler array_values() pour réinitialiser les clés du tableau ->array_values() returns all the values from the array and indexes the array numerically

$textbox_array=array_filter($_POST['text']);   
$textbox_array=array_values($textbox_array); 
$checkbox_array = $_POST['check']; 
    for ($i = 0; $i < count($checkbox_array); $i++) { 
     $textbox = $textbox_array[$i]; 
     $checkbox = $checkbox_array[$i]; 

     echo $textbox; 
     echo '-'; 
     echo $checkbox; 
    } 
+0

Merci beaucoup! Juste ciel. Ma tête a explosé plusieurs fois. :RÉ – Foogley

1

Le problème est que $ textbox_array n'a pas les mêmes clés de tableau que $ checkbox_array. Un correctif consiste à réinitialiser les clés de tableau de $ textbox_array.

Au lieu de

$textbox_array=array_filter($_POST['text']); 

Essayez

$textbox_array=array_values(array_filter($_POST['text'])); 
+0

Merci aussi! Je vous remercie! Je vous remercie! Je vous remercie! – Foogley

+0

@James ressemble à nous étions à 3 secondes d'intervalle avec la même réponse. +1 – Sean

Questions connexes