JQuery和单选按钮的帮助

时间:2009-05-19 00:10:46

标签: jquery

我从数据库导入数据,我想在一组单选按钮中表示这些数据。如果数据库中的值为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 个答案:

答案 0 :(得分:1)

这可能是您正在寻找的:

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);
}

答案 1 :(得分:0)

您是如何从数据库中获取数据的?服务器端脚本?

假设您从MySQL数据库通过php进行数据库查询,您可能需要考虑做类似的事情......

$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。所以也许您可以更改状态以反映新活动,选中复选框,出现文本字段,然后点击“更新”,然后将值传递给存储新信息的服务器端脚本,而不必为整个客户表提交一份。