如何将值从DB传递给单选按钮组?

时间:2016-01-19 14:11:44

标签: javascript html coldfusion

我有一个与单选按钮有关的问题。所以我有用户填写并保存在DB中的表单。用户可以选择通过电子邮件将该表单发送给他们。如果用户点击链接,他们应该获取包含其信息的表单。此时我能够检索所有文本输入值,对我来说问题是如何将值从DB传递给单选按钮组?以下是HTML代码的示例:

<cfquery name="jobInfo" datasource='test'>
    SELECT jobCat 
    FROM   userInfo
    WHERE  UserID = <cfqueryparam cfsqltype="cf_sql_integer" value="#RecID#"> 
</cfquery>

<cfoutput query="jobInfo">
    <tr>
       <th>Jobs</th>
    </tr>
    <tr>
       <td>
          <label>
             <span><input type="radio" name="category" value="Teacher" id="teacher"></span> 
             <span>Teacher</span>
          </label><br>
          <label>
             <span><input type="radio" name="category" value="Professor" id="professor"></span>
             <span>Professor</span>
          </label><br>
          <label>
             <span><input type="radio" name="category" value="Athletic" id="athletic"></span>
             <span>Athletic Director</span>
          </label>
      <td/>
    </tr>
</cfoutput>

然后我尝试检索单选按钮的值,如下所示:

<script>
    $('input:radio[name="category"]').val('<cfoutput>#jobInfo.jobCat#</cfoutput>');
</script>

查询输出:

<cfoutput>#jobInfo.jobCat#</cfoutput> gives me: Teacher

如果我使用字段ID,通常我能够获取复选框的值,但在这种情况下,我必须将值传递给单选按钮组。如果有人知道我做错了什么,请告诉我。谢谢。

2 个答案:

答案 0 :(得分:3)

你使这变得比必要的复杂得多。如果您要提交表单,则根本不需要javascript。

您要做的第一件事是预先选择与查询输出共存的单选按钮。以下是教师如何做到这一点。

<input 
    type="radio" 
    name="category" 
    value="Teacher" 
    id="teacher"
    <cfif jobInfo.jobCat is "teacher">selected="selected"</cfif>
>

重复其他两个选择。

答案 1 :(得分:1)

我猜你的代码做了这样的事情:

<span><input type="radio" name="category" value="Teacher" id="teacher" #((jobInfo.jobCat EQ "Teacher")?'selected="selected"':"")#  ></span> 
<span>Teacher</span>

为其他跨度做亲戚。

如果值实际上来自列表会更好,所以你不要像这样重复你的逻辑

<tr>
   <td>
      <cfloop list="Teacher,Professor,Athletic" index="currCat">
      <label>
         <span><input type="radio" name="category" value="#currCat#" id="#currCat#" #((jobInfo.jobCat EQ currCat)?'selected="selected"':"")></span> 
         <span>#currCat#</span>
      </label><br>
      </cfloop>
  <td/>
</tr>

希望有所帮助