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

How to pass the value from DB to the group of radio buttons?

本文关键字:单选按钮 DB      更新时间:2023-09-26

我有一个与单选按钮有关的问题。所以我有用户填写并保存在数据库中的表格。用户可以选择通过电子邮件将该表单发送给他们自己。如果用户单击链接,他们应该获得包含其信息的表单。此时我能够检索所有文本输入值,对我来说的问题是如何将值从 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,我能够获取复选框的值,但在这种情况下,我必须将值传递给单选按钮组。如果有人知道我做错了什么,请告诉我。谢谢。

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

您要做的第一件事是预先选择与查询输出共同存在的单选按钮。 这是你如何为老师做到这一点的。

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

对其他两个选项重复此操作。

我想你的代码是这样做的:

<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>

希望对你有帮助