在<选择>标记中添加隐藏值


Add hidden values inside an <select> tag

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

如何在值COUNTRY_CODE的 while 循环中添加隐藏变量?是否可以添加像<input type="hidden" name='country_code' value="<?php echo $ro_c['COUNTRY_CODE']?>">这样的隐藏值,请帮助我...提前感谢...

您不能将隐藏值放在 <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'));
});
我不知道

你为什么要这样做。我建议在选择代码之外执行 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的方法(但请记住我的评论(。