2010-12-14 4 views
1

J'ai trouvé du code pour m'aider avec un problème que j'avais ... c'est pour que si un formulaire ne passe pas la validation, il conservera mes sélections de case à cocher. Maintenant, je me demande comment puis-je obtenir les sélections dans un formulaire que je peux mettre dans mysql? sous ma forme php array de checkbox dans mysql

<?php 

$a = array("1*","2*","3*","4*","5*+"); 

foreach($a as $key => $value) 
{ 
    echo `"<input type='checkbox' name='rating[]' value='$value' `"; 

    if(is_array($_POST['rating']) && in_array($value,$_POST['rating'])) 
     echo " checked "; 

    echo ">$value"; 
} 
?> 

<INPUT TYPE="SUBMIT" name="submitted" VALUE="Submit" class="submit"> 
</form> 
</code> 
+0

Si votre valeur est dans ce tableau, vous obtiendrez toujours la même réponse et tous seront 'vérifiés' – shevski

Répondre

2

Est-ce que vous demandez?

foreach($_POST['rating'] as $checked_value) 
{ 
    //do what you want to do with here like INSERT or UPDATE 
    echo $checked_value.'<br />'; 
} 

EDIT: Peut-être aussi cela vous aidera si vous cherchez à faire de l'arithmétique ou d'analyse sur les évaluations

$a = array("1" => "1*", "2" => "2*", "3" => "3*", "4" => "4*", "5" => "5*+"); 

    foreach($a as $key => $value) 
    { 
     echo '<input type="checkbox" name="rating[]" value="'.$key.'"'; 

    /* replaced 
     if(is_array($_POST['rating']) && in_array($value,$_POST['rating'])) 
    with below */ 
     if(is_array($_POST['rating']) && in_array($key,$_POST['rating'])) 
      echo " checked "; 

     echo " />$value"; 
    } 

pas sûr de votre mise en œuvre de ce code, mais êtes-vous sûr une case à cocher est le type d'entrée correct? Peut-être qu'un bouton radio serait mieux que les utilisateurs ne pouvaient choisir que 1 note. Comme il est actuellement configuré, un utilisateur peut choisir 1, 3 et 5 comme notation.

+0

+1 pour bon point général avec le bit "choix multiple" bit – Bojangles

+0

Je suis à la recherche d'un retour de données comme 1 3,5, votre foreach m'a rapproché mais il sort comme 135 à la place. Et oui, je veux que ceux-ci soient multiples sélectionnables. –

+0

J'ai aussi essayé la touche $ au lieu de la note mais ça jette tout ça. Il tue le postback dans les cases à cocher, je pense que c'est parce qu'il est une valeur différente –