PHP,MYSQL选择框未正确选择

时间:2012-04-16 17:58:21

标签: php javascript

得到了另一个奇怪的人:

这是我的php:

echo "</tr><tr>";
echo "<td style='color:white;'>".$row['iDesc']."</td><td>".$row['pCnt']."</td><td style='color:".$color.";'>".$row['pDur']."</td><td>".$row['pStr']."</td><td>".$row['pSpd']."</td><td>";
echo "<select name='wield".$row['pNum']."' id='wield".$row['pNum']."' size='1' style='width: 100px;' onChange='wieldit(".$row['pNum'].");'>";
echo "<option value=0>Use On";
$query = "Select item, iDesc from item where iType = 1";
$result2 = mysql_query($query, $_SESSION['connect']);
while ($row2 = mysql_fetch_array($result2)) {
  echo "<option";
  echo " value=".$row2['item'].">".$row2['iDesc']."</option>";
}
echo "</select></td>";
}

这是我的js:

function wieldit(num) {
    var id = "wield"+num;
    var e = $(id); 
    var t =  e.options[e.selectedIndex].value;
    var params = "sWield="+t;
    params += "&sNum="+num;
    new Ajax.Updater('div06', 'php/pack.php', {method: 'get', parameters: params, onComplete: showBody});
}

当我运行它时,选择框中的值为0,1,2,26,25,24,23,31。对于示例,我正在运行$ row ['pNum'] = 6并且我是选择选择值31.当我在js sWield = 0和sNum = 6中对params进行警报时。事实是,sWield应该是31.想法?如果我使用不同的值运行,请说$ row ['pNum'] = 11并在js sWield = 25中选择值25,并且sNum应该是11。想法?

2 个答案:

答案 0 :(得分:3)

您没有关闭第一个选项 echo "<option value=0>Use On</option>";

首先尝试关闭这个!

答案 1 :(得分:0)

值31是选择框中的第7个选项。 当Javascript从0开始计数时,它显示为6。

因此它似乎会提醒指数而不是所选择的价值。 您可以尝试尝试此操作,并在值周围加上引号: <option value='31'>Arms</option>