JQuery и радио-кнопка справки - PullRequest
0 голосов
/ 19 мая 2009

У меня есть данные, импортируемые из базы данных, и я хотел бы представить эти данные в наборе переключателей. Если значение в базе данных равно 1, в «статусе клиента» должен отображаться «активный» переключатель, в противном случае - «неактивный».

Я совсем немного знаю о JQuery, но учусь изо дня в день, поэтому любая подробная помощь будет с благодарностью.

Я взял основные фрагменты кода из своих файлов и включаю их здесь.

Интересная вещь в коде, который я публикую, заключается в том, что я могу использовать кнопки для изменения данных в базе данных. Это работает, но показывает, что в базе данных нет.

var admCustStatus = $("input[name='admCustStatus']:checked").val();


if (item.field == "admCustStatus")
{
   // ?? radio buttons
}

<tr>
    <td class="admMarker">Active<input type="radio" id="admCustStatusActive" name="admCustStatus" value="1" checked="checked" class="admChkbx"></td>
    <td class="admMarker">Inactive<input type="radio" id="admCustStatusInactive" name="admCustStatus" value="0" class="admChkbx"></td>
</tr>

Ответы [ 2 ]

1 голос
/ 19 мая 2009

Это может быть то, что вы ищете:

if (item.field == "admCustStatus")
{
  if(item.value == 1) //assuming this is how you get the value
   $("#admCustStatusActive").attr('checked',true);
  else
   $("#admCustStatusInactive").attr('checked',true);
}
0 голосов
/ 19 мая 2009

Как вы получаете данные из базы данных? Серверный скрипт?

Предполагая, что вы делаете запрос к вашей базе данных через php из БД MySQL, вы можете рассмотреть возможность сделать что-то вроде ...

$cust_query = "SELECT status FROM custDB WHERE cust_name = '$cust'";
$cust_result = mysql_query($cust_query);

while ($row = mysql_fetch_assoc($cust_result)) {
      $cust_status = $row['status'];
      }

Теперь это действительно просто, потому что предполагается, что вы просто хотите получить статус одного клиента. Если бы у вас было несколько клиентов, вы могли бы пойти с ...

$cust_query = "SELECT cust_name, status FROM custDB ORDER cust_name";
$cust_result = mysql_query($cust_query);

while ($row = mysql_fetch_assoc($cust_result)) {
      $cust_status[$row['cust_name'] = $row['status'];
      }

Это даст вам ассоциативный массив всех ваших клиентов и их статус, который в распечатанном виде будет выглядеть так:

     [Jones] => 'Active',
     [Smith] => 'Inactive'

и т.д ...

Имея это, вы просто сделаете свой вывод. Поскольку это логическое значение (они могут быть активными или неактивными), я бы рекомендовал использовать переключатель вместо радио. Это основной HTML:

   <table>
      <tr><td>Jones</td><tr><input type="checkbox" checked="checked" value="active" /></td></tr>
     <tr><td>Smith</td><tr><input type="checkbox" value="active" /></td></tr>
  </table>

И чтобы это работало на результаты вашей базы данных, вы могли бы пойти с ...

 echo <<<EOT
 <table id="cust_status">
 <tr><th>Customer Name</th><th>Status</th></tr>
 EOT;

 while($row = mysql_fetch_assoc($cust_results)) {
       $status = ($row['status'] == 'active') ? 'checked="checked"' : "";
       $cust_name = $row['cust_name'];
       echo <<<EOT
       <tr><td>$cust_name</td><tr><input type="checkbox" $status value="active" /></td></tr>
      EOT;
  }
  echo "</table>";

Этот последний бит избавляет от необходимости перемещать результаты в массив и просто выводит их прямо. После того, как вы загрузили это, вы можете использовать jquery для запуска ajax на столе, если вы хотите запускать обновления. Поэтому, возможно, вы изменяете статусы, чтобы отразить новую активность, вы устанавливаете флажок, текстовое поле появляется по причине, а затем вы нажимаете «обновить» и передает значения в серверный скрипт, который хранит новую информацию без необходимости отправить заявку на весь лист клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...