2012-09-21 2 views
0

J'ai 4 cases à cocher et suppose que je vérifie que deux d'entre eux iE user1 et user3case à cocher multiples en php

<input type="checkbox" name="usersp[]" value="1" checked="checked" />User1 <br> 
<input type="checkbox" name="usersp[]" value="2"/>User2 <br> 
<input type="checkbox" name="usersp[]" value="3" checked="checked" />User3 <br> 
<input type="checkbox" name="usersp[]" value="4"/>User4 <br> 

et j'ai deux champs (« User_id », « Sélectionné ») dans ma base de données, ci-dessous est mon code d'insertion

foreach($_POST['usersp'] as $user_id) { 
    $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','')"; 
    $result = mysql_query($sql); 
} 

ma question est comment pourrais-je insérer l'utilisateur vérifié comme valeur de 1 et d'autres en tant que valeur de 0 dans le champ « sélectionné »?

+2

Si votre table est sel_users que pour les utilisateurs sélectionnés, pourquoi ne vous nè ed pour insérer les utilisateurs qui n'ont pas été sélectionnés? Sûrement, seulement l'insertion des utilisateurs choisis est la meilleure ligne de conduite? –

+1

Au lieu de '', utilisez ' '. – DCoder

+0

Le problème est lorsque j'utilise ma requête de mise à jour, supposons que je mets à jour ces cases à cocher et décochez user1, user3 et vérifiez user2 et user4, puis comment je ferais une requête de mise à jour, car elle met à jour et insère en même temps. – Bheem

Répondre

1

Vous ne pouvez pas savoir les (cases non sélectionnées), sauf si vous êtes les connaissez déjà

Ici, la seule manière qui peut faire de votre rêve réel

//YOUR USERS IDS 
$userIDS=array('1','2','3','4'); 
//CHECKED USERS ARRAY 
$checkedUsers=array('1','3'); 

if(!isset($_POST['usersp'])){ 
foreach($userIDS as $userID){ 
    //IF IT IN CHECK ARRAY, CHECK IT! 
    $checked=(in_array($userID,$checkedUsers))?' checked="checked"':''; 
    echo '<input type="checkbox" name="usersp[]" value="'.$userID.'"'.$checked.' />'; 
} 
} 

else{ 
    foreach($userIDS as $userID){ 
     //USER SELECTED OR NOT? 
     $selected=(in_array($userID,$_POST['usersp']))?'1':'0'; 
     $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','$selected')"; 
     $result = mysql_query($sql); 
    } 
} 
+0

Merci pour votre réponse, je l'utilise à ma manière, mais cela m'aide. Merci encore :) – Bheem

1

Checkbox donne la valeur des éléments Checked sous le même nom.

Ainsi, dans l'exemple que vous avez donné Vous n'obtiendrez pas les valeurs non cochées.

Mais si vous donnez chaque case à cocher un nom différent, vous pouvez obtenir ce que vous voulez comme: -

<input type="checkbox" name="usersp1" value="1" checked="checked" />User1 <br> 
<input type="checkbox" name="usersp2" value="2" />User2 <br> 
<input type="checkbox" name="usersp3" value="3" checked="checked" />User3 <br> 
<input type="checkbox" name="usersp4" value="4" />User4 <br> 

Et Du côté PHP

for($i=1;$i<5;$i++){ 
    if(isset($_POST['usersp'.$i]){ 
     $sql = "INSERT INTO sel_users(`User_id`,`Selected`) VALUES('$user_id','1')"; 
     $result = mysql_query($sql); 
    } 
    else{ 
     //Somehow you still have to get other User_id's in another way. 
    } 
} 

Maintenant, vous Haw pour obtenir le formulaire d'identification de l'utilisateur non sélectionné quelque part que vous pouvez mettre dans la condition d'autre. Vous pouvez utiliser Ajax + JS ou JQuery pour la soumission de formulaire au lieu du HTML par défaut afin que vous puissiez prendre les valeurs non cochées sous un autre nom et les traiter en PHP en conséquence

+0

Merci pour votre réponse, je vais essayer cette logique aussi. :) – Bheem

+0

@Bheem Bienvenue ... :) – Sanuj

0

Travailler pour moi, enregistrer à la fois cocher et décocher la valeur mysql

HTML:

<form method="post" action="jawab25.php"> 
<input type="hidden" name="check_lista[]" value="<?php echo $r["id"]?>"> 
<input type="checkbox" name="check_listb[]" value="<?php echo $r["id"]?>"> 
<input value="Check" type="Submit"> 

jawab25.php:

foreach($_POST['check_lista'] as $itema){ 
     $string="update trans set ck='N' where id='$itema'"; 
     $tampil=mysql_query($string); 
    } 

    foreach($_POST['check_listb'] as $itemb){ 
     $string="update trans set ck='Y' where id='$itemb'"; 
     $tampil=mysql_query($string); 
    }