下拉列表选择值禁用

时间:2017-09-23 01:39:48

标签: php mysql

因为我真的不知道如何才能解决这个问题。但是在选择下拉列表后禁用值是可行的吗?并转到下一个值?如果它的可能性如何?任何帮助将不胜感激,谢谢。顺便说一句,数据库中的数据是使用mysql

的下拉列表
     <div id="container">
  <table width="420" align="center">
 <form name="fmNames" id="fmNames" method="post" action="vote.php" 
onSubmit="return positionValidate(this)">
 <tr>
<td>Choose Position</td>
<td><SELECT NAME="position" id="position" onclick="getPosition(this.value)">
<OPTION VALUE="select">select
<?php 
//loop through all table rows
while ($row=mysql_fetch_array($positions)){
echo "<OPTION VALUE=$row[position_name]>$row[position_name]"; 
//mysql_free_result($positions_retrieved);
//mysql_close($link);
}
?>
</SELECT></td>
<td><input type="submit" name="Submit" value="See Candidates" /></td>
 </tr>
 <tr>
<td>&nbsp;</td> 
<td>&nbsp;</td>
</tr>
    </form> 
  </table>
 <table width="500" align="center">
   <form>
 <tr>

      <th>Grade</th>
<th></th>
<th>Section</th>
  </tr>
   <?php
    //loop through all table rows
  //if (mysql_num_rows($result)>0){
      if (isset($_POST['Submit']))
      {
    while ($row=mysql_fetch_array($result)){

   echo "<tr>";
  echo "<td>" . $row['candidate_name']."</td>";
    echo "<td>" . $row['hello']."</td>";
   echo "<td>" .$row['candidate_gender']."</td";
   echo "<td>" . $row['hello']."</td>";
    echo "<td>" . $row['candidate_grade']."</td>";
   echo "<td>" . $row['hello']."</td>";
   echo "<td>" .$row['candidate_section']."</td";
    echo "<td>" . $row['hello']."</td>";
                  Print '<td><img src="date:image/jpeg;base64,' .base64_encode($row['image']).'"height="60 width="75 /></td>';

   echo "<td>" . $row['hello']."</td>";
  echo "<td>" . $row['hello']."</td>";
  echo "<td>" . $row['hello']."</td>";

  echo "<td><input type='radio' name='vote' value='$row[candidate_name]' onclick='getVote(this.value)' /></td>";
    echo "</tr>";
     }

 mysql_free_result($result); 
   mysql_close($link);
  //}
      }
  else
 // do nothing
     ?>



     <?php
   // retrieving positions sql query
   $positions=mysql_query("SELECT * FROM tbPositions")
  or die("There are no records to display ... \n" . 

    mysql_error()); 
?>
<?php
     // retrieval sql query
  // check if Submit is set in POST
      if (isset($_POST['Submit']))
      {
        // get position value
    $position = ( $_POST['position'] ); //prevents types of SQL injection


     // retrieve based on position
      $result = mysql_query("SELECT * FROM tbCandidates WHERE 
  candidate_position='$position'")
  or die(" There are no records at the moment ... \n"); 

  // redirect back to vote
    //header("Location: vote.php");
    }
   else
  // do something

  ?>

1 个答案:

答案 0 :(得分:0)

您可以尝试使用js获取下拉列表的所有选项。 然后迭代它们,检查当前是否选择了一个,如果是,则将其删除并将下一个设置为选中。

如果不使用javascript,我没有办法做到这一点。

编辑:这是我的示例代码:

我的index.html:

<html>
<head>
    <script src="app.js"></script>
</head>
<body>
    <select id="position">
        <option value="pos1">pos1</option>
        <option value="pos2">pos2</option>
        <option value="pos3">pos3</option>
        <option value="pos4">pos4</option>
        <option value="pos5">pos5</option>
    </select>
</body>

我的app.js:

function disableOption(name){
    // get the select
    var pos = document.querySelector('#position');

    // remove the option
    var lastActive = pos.selectedIndex;
    pos.remove(pos.selectedIndex);

    // set next one as active (check here if lastActive < pos.length and what to do if not)
        pos.options[lastActive].selected = true;
}

window.onload = function(){
    document.querySelector('#position').addEventListener('change', disableOption);
}

我将我的函数附加到SELECT的更改事件,因此它在您单击它之后立即删除所选选项并将下一个选项设置为选中。 示例:如果您单击pos3,它将被删除,并且将选择pos4。

我希望这就是你希望它发挥作用的方式。