我有一个很大的困境,我从MySQL生成的数据到一个形式,所以,问题是,而由SQL生成的第一行是0的选择选项的形式是解释第一个值为1。如果我不想从这个查询中抛出一些数据,那就不会有任何问题。下面是代码:
<select id="exp_address" name="exp_address" onChange="document.getElementById('exp_city').value = this.options[this.selectedIndex].getAttribute('data-exp_city'); document.getElementById('exp_dist').value = this.options[this.selectedIndex].getAttribute('data-exp_distr'); document.getElementById('exp_address_val').value = this.options[this.selectedIndex].getAttribute('data-exp_city_val')">
<?php
for($i = 0; $i < $expselnum; $i++){
$exps_add_id = mysql_result($expsel,$i,'address_id');
$exps_address = mysql_result($expsel,$i, "address");
$exps_city = mysql_result($expsel,$i, "city");
$exps_distr_val = mysql_result($expsel,$i, "district");
echo "<option value=$exps_add_id data-num=$i data-exp_city = '$exps_city' data-exp_distr = '$exps_distr_val' data_exp_city_val = '$exps_city'>$exps_address</option>";
}
?>
</select>
下面是生成的HTML代码:
<select onChange="Here is some JS to change the value of District and City inputs">
<option value=1 data-num=0 data-exp_city = 'BUCURESTI' data-exp_distr = 'Bucuresti' data_exp_city_val = 'BUCURESTI' [selected by default]>Another Address in RO</option><option value=2 data-num=1 data-exp_city = 'OTOPENI-IF' data-exp_distr = 'Ilfov' data_exp_city_val = 'OTOPENI-IF'>Some address in RO</option></select>
<input name="exp_city" type="text" id="exp_city" style="text-align:left;" value="OTOPENI-IF" size="30" readonly="readonly">
如果比较option标签中的value和data-num att,您将看到它们的不同之处在于一个单位WHY。option的第一个值是在页面登陆时选择的,但是城市输入显示查询的下一个值。我该如何解决这个问题?提前感谢大家
虽然这不是很微妙,但我同意Shrapnel的评论。然而,这可能会解决你的"问题"(我真的不明白这个问题,虽然):
for($i = 0; $i < $expselnum; $i++){
更改为:
for($i = 1; $i < $expselnum; $i++){