在<select>标记</select>中添加隐藏值

时间:2012-07-18 10:42:20

标签: php html

 <select name="Country" id="Country" style="width:200px;">
                        <option value="0">--Select Country--</option>
                        <?php 
                        $str_c="SELECT COUNTRY_CODE,COUNTRY_CODE_PARCELFORCE,COUNTRY_DESC FROM COUNTRYS";
                        $sql_c=mysql_query($str_c,$db) or die(mysql_error());
                         while($row_c = mysql_fetch_assoc($sql_c)) { 
                                 $count_no++;
                             ?>
                        <option value="<?php echo $row_c['COUNTRY_CODE_PARCELFORCE'];?>"<?php if($row_c['COUNTRY_DESC']== $row['COUNTRY']) echo 'selected="selected"'?>><?php echo $row_c['COUNTRY_DESC'];?></option>
                        <?php } ?>
                      </select>

我怎样才能在while循环中为值COUNTRY_CODE添加隐藏变量?是否可以添加<input type="hidden" name='country_code' value="<?php echo $ro_c['COUNTRY_CODE']?>">之类的隐藏值,请帮助我......提前致谢...

2 个答案:

答案 0 :(得分:0)

您无法在<select>标记中添加隐藏值,但是如果您想为option添加自定义属性,则可以这样做

<option value="<?php echo $row_c['COUNTRY_CODE_PARCELFORCE'];?>"<?php if($row_c['COUNTRY_DESC']== $row['COUNTRY']) echo 'selected="selected"'?> attribute1="<?php echo $row_c['CUSTOM_ATTR'];?>"><?php echo $row_c['COUNTRY_DESC'];?></option>

使用Jquery像这样使用

来访问cutom属性
$('#Country').change(function(){
  alert($(this).find('option:selected').attr('attribute1'));
});

答案 1 :(得分:0)

我不知道你为什么要这样做。我建议在选择代码之外做while循环。

所以你得到了

<?php
// sql stuff
$options = '';
$hidden = '';
while($row_c = mysql_fetch_assoc($sql_c)){
  $count_no++;
  $options .= "<option value="<?php echo $row_c['COUNTRY_CODE_PARCELFORCE'];?>"<?php if($row_c['COUNTRY_DESC']== $row['COUNTRY']) echo 'selected="selected"'?>><?php echo $row_c['COUNTRY_DESC'];?></option>"
  $hidden .= "<input type="hidden" name='country_code' value="<?php echo $ro_c['COUNTRY_CODE']?>">";
}

// now the select
?>
<select>
  <?php echo $options; ?>
</select>
<!-- hidden values -->
<?php echo $hidden; ?>

您的评论说它是用于验证目的。我想不出你需要做这个验证的原因。如果它们已经存储在数据库中,那么在表单发布/提交后,您应该对数据库进行验证查找。

否则,请使用@ ubercooluk的方法(但请记住我的评论)。