从选择的性别下拉列表中选择ID

时间:2013-09-18 09:46:39

标签: php mysql sql codeigniter

我有一个性别下拉列表。我从我的表'候选'中获取值,在此表中我有一个字段,实际上是另一个表的外键。

该字段为gender_code_cde,表名为gender_code。现在gender_code包含2行。和id和描述。它的结构如下:

1→男 2→女

它显示在下拉列表中。但如果选择了男性,我想得到id 1,如果选择了女性,我想得到id 2。我的代码如下:

<p>
<label for ="gender">Gender:</label>
<?php
   $query = mysql_query("select * from gender_code"); // Run your query
   echo '<select name="GENDER">'; // Open your drop down box
   //Loop through the query results, outputing the options one by one
   while ($row = mysql_fetch_array($query)) 
  {
     echo '<option value="'.$row['gender_cde'].'">'.$row['gender_dsc'].'</option>';
  }
  echo '</select>';
?>
</p>

我在codeIgniter中工作。

3 个答案:

答案 0 :(得分:0)

在Javascript中,您可以使用本机JS获取值。

var e = document.getElementById("give-the-select-element-an-id");
var gender_cde = e.options[e.selectedIndex].value;

如果您希望它返回服务器,它将以$_GET['GENDER']$_POST['GENDER']的形式进入PHP,具体取决于表单是执行POST还是GET请求。

答案 1 :(得分:0)

//无论何时改变,都会提示下拉值

<script>
function getvalue(val)
{
   alert(val);
}
</script>
    <p>
    <label for ="gender">Gender:</label>
    <?php
       $query = mysql_query("select * from gender_code"); // Run your query
       echo '<select name="GENDER" id="Gender" onchange="getvalue(this.value)">'; // Open your drop down box
       //Loop through the query results, outputing the options one by one
       while ($row = mysql_fetch_array($query)) 
      {
         echo '<option value="'.$row['gender_cde'].'">'.$row['gender_dsc'].'</option>';
      }
      echo '</select>';
    ?>
    </p>

答案 2 :(得分:0)

如果您要提交(POST)表单并且这是在该表单中,您可以从CodeIgniter的$_POST包装器$this->input->post('GENDER');访问值(id)。我不使用CodeIgniter所以我可能错了,但它将位于PHP的$_POST数组中。

如果您只想在页面的某个位置复制变量,只需echo即可。或者通过js / jQuery设置document.getElementById('#something').value = value;jQuery('#something').html(value);

您还应该更改以下内容:

  • 使用foreach代替您的while:

    foreach ($query as $row) {
        echo $row['gender_x'] . $row['gender_y'];
    }
    
  • 使用CodeIgniter SQL包装器而不是折旧的PHP函数。查询部分为$this->db->query('SELECT statement goes here');。您应该查看CodeIgniters的版本文档,以获得更深入的解释。

编辑:为了让它更清晰,例如:

$query = $this->db->query('SELECT * FROM gender_code');
foreach ($query->result() as $row) {
    echo '<option value="' . $row->gender_cde . '">' . $row->geneder_dsc . '</option>';
}

这假设您已在CodeIgniter中设置了之前的调用。请参阅http://ellislab.com/codeigniter/user-guide/database/examples.html,您可能希望阅读http://ellislab.com/codeigniter/user-guide/