2011-03-05 1 views
0

Dans le site Web que je conçois la page de liste d'admin montre des champs tels que le nom, l'email, le nom d'utilisateur et le statut (utilisateurs actifs ou inactifs). Ma base de données a une table appelée admin. Les champs sont iAdminId, vPrénom, vLastName, vEmail, vUserName, vPassword, vFromIP, vFromIP, dLastLogin et eStatus. Dans la page PHP équivalente (la page de la liste d'admin) j'ajoute un bouton actif inactif &. Des cases à cocher sont présentes avec chaque ligne. Le nombre de lignes qu'un administrateur choisit sera mis à jour (après confirmation, bien sûr) une fois qu'il clique sur Actif ou Bouton Inactif.comment accéder à l'identifiant?

Mon code d'activation est javscript:

function activeRecord() 
    { 
    var count = getCount(); 
    if(count == 0) 
    { 
     alert("Please enter some records for activation first!!"); 
    } 
    else 
    { 
     var c = confirm("Do you wish to activate?"); 
     if(c==true) 
     { 
     document.frm.mode.value="Active"; 
     document.frm.submit(); 
     } 
     else 
     { 
     alert("You had wrongly selected 'Active' option!!"); 
     } 
    } 
    } 

getCount renvoie le nombre d'enregistrements sélectionnés. et le code PHP est

if($mode=="Active") 
    { 
    for($i=0;$i<count($_POST['ch']);$i++) 
    { 
     $active = "UPDATE admin SET eStatus = 'Active' WHERE iAdminId = '" . $_POST['ch'][$i] . "'"; 
     $result = mysql_query($active,$conn); 
    } 
    } 

Même après avoir sélectionné son ne pas supprimer les enregistrements sélectionnés. J'ai essayé de faire écho aussi.

echo $ active = "MISE À JOUR admin SET eStatus = 'Actif' O WH iAdminId = '". $ _POST ['ch'] [$ i]. "'";

"ch" est le nom du tableau pour toutes les cases

Il montre: MISE A JOUR admin SET = estatus 'inactif' WHERE iAdminId = ''

Toute aide sera appréciée. Merci à l'avance

ch est utilisé comme:

Pls aide. C'est urgent. Merci à tous.

+0

A quoi ressemble votre formulaire? Cela devrait ressembler à ''. Vous devriez aussi désinfecter/valider votre entrée, l'injection SQL est possible. – Lekensteyn

Répondre

-1

Désolé de déranger tout le monde et des charges de remerciements pour avoir payé l'intérêt de résoudre mon problème. Je suppose que j'avais besoin d'une paire supplémentaire d'yeux pour vérifier mon code. Comme @fabsn a demandé, j'ai revérifié mon code. J'avais entré la valeur pour les cases à cocher. Donc, il n'y avait aucune chance qu'ils deviennent vierges. C'était juste une erreur d'orthographe mineure. Son corrigé maintenant et fonctionne absolument bien maintenant. Je suppose que je dois être plus prudent à partir de maintenant afin que je ne vous dérange pas tous inutilement.

Merci encore

0

Dans votre cas, $_POST['ch'] doit être un tableau. Vérifiez si cela est vrai en plaçant var_dump($_POST['ch']) dans votre script PHP.

Vos cases à cocher doivent également utiliser le même nom (<input name="ch[]" value="Element-ID" />).

Il n'est pas nécessaire d'ajouter un index entre parenthèses. Si vous faites ainsi, votre for-Loop (qui pourrait être remplacé par foreach) ne fonctionnera pas puisque vous vérifiez juste la longueur et parcourez le tableau avec les mauvaises clefs.

+0

Vérifiez votre source html.Je suppose que vos cases à cocher n'ont pas les bonnes valeurs. On dirait qu'ils ont tous une valeur vide ('value =" "') – fabsn