2012-03-31 3 views
-3

У меня странная проблема. Это моя форма, если пользователь запрещен, флажок установлен, если нет, флажок пуст.2 checkboxes - Один из них не работает

<tr> 
    <td>{$user4.username}</td> 
    <td>{$user4.email}</td> 
    <td>{$user4.name} {$user4.surname}</td> 
    {if !$user4.banned} 
    <td><center><input type="checkbox" name="banCheckBan" value="{$user4.id}" /></center></td> 
    {else} 
     <td><center><input type="checkbox" name="banCheckBan2" value="{$user4.id}" checked /></center></td> 
    {/if} 
    {if $user4.status} 
    <td><center><input type="checkbox" name="removeCheck" value="{$user4.id}"></center></td> 
    {else} 
     <td><center><input type="checkbox" name="removeCheckNoRemove" value="{$user4.id}" checked></center></td> 
    {/if} 
</tr> 

В стороне контроллера, я использую ниже code.BancheckBan работает properly.However, banCheckBan2 не working.What может быть причиной?

if (isset($_POST['updateBanRemove'])) { 

      if (isset($_POST['banCheckBan2'])) 
        NCore::db('USER')->updateAsArray(array('BANNED' => 0))->eq('ID', $_POST['banCheckBan2'])->execute(); 
      elseif (isset($_POST['banCheckBan'])){ 
       NCore::db('USER')->updateAsArray(array('BANNED' => 1))->eq('ID', $_POST['banCheckBan'])->execute(); 
      } 
     } 
+0

Что именно вы имеете в виду под "не работает"? –

+0

if (isset ($ _ POST ['banCheckBan2'])) NCore :: db ('USER') -> updateAsArray (массив ('BANNED' => 0)) -> eq ('ID', $ _POST [' banCheckBan2' ]) -> Execute(); это не работает, но banCheckBan работает. Чего не хватает? – user1277467

+0

Возможно, вам придется добавить теги к этому вопросу. Вы используете фреймворк или библиотеку шаблонов? – halfer

ответ

2

Только checked checkboxes будут отправлены на сервер. Таким образом, ваше состояние не удалит пользователя, если вы снимите флажок.

Одним из вариантов решения этой проблемы может быть таким:

(Вид сбоку)

<input type="hidden" name="userID" value="{$user4.id}" /> 

{if !$user4.banned} 
    <td> 
    <center> 
     <input type="checkbox" name="banCheckBan" value="1" /> 
    </center> 
    </td> 
{else} 
    <td> 
    <center> 
     <input type="checkbox" name="banCheckBan" value="1" checked /> 
    </center> 
    </td> 
{/if} 

(Controller Side)

if (isset($_POST['updateBanRemove'])) { 
    if (!isset($_POST['banCheckBan'])) { 
    NCore::db('USER') 
     ->updateAsArray(array('BANNED' => 0)) 
     ->eq('ID', $_POST['userID']) 
     ->execute(); 
    } elseif ($_POST['banCheckBan']) { 
    NCore::db('USER') 
     ->updateAsArray(array('BANNED' => 1)) 
     ->eq('ID', $_POST['userID']) 
     ->execute(); 
    } 
} 
+0

так как я могу решить эту проблему? – user1277467

+0

все еще не установлен не работает. : D – user1277467

+0

Я обновил свой ответ. – Alexander

0

Нельзя ли поставить флажок напротив того, чтобы быть точным, если и если вы проверяете его значение?

Смежные вопросы