首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将提供一个选项的下拉列表更改为复选框中的多个选项

将提供一个选项的下拉列表更改为复选框中的多个选项
EN

Stack Overflow用户
提问于 2013-07-12 01:27:08
回答 1查看 605关注 0票数 0

我正在修改一个表单,这是我从未实际使用过的东西。根据记录,我不会编写PHP代码。

简而言之: html/php表单有一个包含五个值(研究领域)的下拉列表,您只能从中选择一个。但是客户端希望能够选择多个。所以现在我想丢弃下拉菜单,用复选框来代替。

我更喜欢做最少的mods到目前的设置。

注意*这是一个动态下拉列表;因此从另一个表中提取值并提交到数据库。

下面是我正在使用的代码:

代码语言:javascript
复制
$query_fields_of_research = "SELECT * FROM tblOpportunityFieldOfResearch ORDER BY      
field_of_research_en ASC;";
$sql->query($query_fields_of_research, SQL_ALL, SQL_ASSOC);
$fields_of_research = $sql->record;
?>
<select name="strFieldOfStudy_en" id="strFieldOfStudy_en">
   <?php
   foreach ($fields_of_research as $field) {
       $selectedValue= "";  
       if ($strFieldOfStudy_en == $field['id'])
           $selectedValue= " selected";
       echo "\t\t\t".'<option 
       value="'.$field['id'].'"'.$selectedValue.'>'.$field['field_of_research_en']."
       </option>\n";
   }
   ?>
</select>

在此之后,提交的数据也将更新为表格中的网页,其中包含以下内容:

代码语言:javascript
复制
<tr>
<td>Fields of research</td>
<td>
<?php 
$fieldsOfResearch = array('1', '2', '3', '4', '5');
if (in_array($opp['strfieldofstudy_en'], $fieldsOfResearch)){
    echo $iri->getFieldOfResearch($opp['strfieldofstudy_en'], 'en');
}
else
    echo $opp['strfieldofstudy_en'];
?></td>
</tr>

如何将下拉菜单更改为mods数量最少的复选框?

EN

回答 1

Stack Overflow用户

发布于 2013-07-12 02:19:55

你可以做到的

在带有选择框html页面中

替换:

代码语言:javascript
复制
<select name="strFieldOfStudy_en" id="strFieldOfStudy_en">
   <?php
   foreach ($fields_of_research as $field) {
       $selectedValue= "";  
       if ($strFieldOfStudy_en == $field['id'])
           $selectedValue= " selected";
       echo "\t\t\t".'<option 
       value="'.$field['id'].'"'.$selectedValue.'>'.$field['field_of_research_en']."
       </option>\n";
   }
   ?>
</select>

出自:

代码语言:javascript
复制
<?php
       $i = 1;
       foreach ($fields_of_research as $field) {
           $selectedValue= "";  
           if ($strFieldOfStudy_en == $field['id'])
               $selectedValue= 'checked="checked"';
          echo '<checkbox id="strFieldOfStudy_en'.$i.'" name="strFieldOfStudy_en[]"    
          value="'.$field['id'].'"'.$selectedValue.'>'.$field['field_of_research_en'];

           $i++;
       }
?>

在提交页面中:

替换:

代码语言:javascript
复制
    if (in_array($opp['strfieldofstudy_en'], $fieldsOfResearch)){
      echo $iri->getFieldOfResearch($opp['strfieldofstudy_en'], 'en');
    }
    else
     echo $opp['strfieldofstudy_en'];

出自:

代码语言:javascript
复制
foreach($_POST['strFieldOfStudy_en'] as $item) {
        if (in_array($item, $fieldsOfResearch)){
           echo $iri->getFieldOfResearch($item, 'en');
        }
        else
          echo $opp['strfieldofstudy_en'];
}
// here $_POST['strFieldOfStudy_en'] includes all the values of checkbox checked in   
//the html form

// foreach extracts each value from $_POST['strFieldOfStudy_en'] into $item(say ids
//1,2,3,...).

我希望这能对你有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17599741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档