【问题标题】:Select from drop-down menu and reload page从下拉菜单中选择并重新加载页面
【发布时间】:2013-08-12 03:12:35
【问题描述】:

我有一个从 MYSQL 数据库填充数据并从同一数据库填充下拉菜单的表。我的下拉菜单和表格很好,但是我希望能够选择我在表格中显示的数据。

<select name = 'peer-id' method='post' style = 'position: relative'>
        <?php
        while ($content = mysql_fetch_array($peer)) {
            echo "<option value='" . $content['Peer'] . "'>" . $content['Peer'] . "</option>";
        }
        $results = mysql_query("SELECT Destination FROM rate  ");
        ?>
    </select>

这就是我的选择框。如何从中获得选择并将其保存为变量并刷新表数据?

我需要澄清一下,这会改变当前数据

 #Data#Data#Data
 #Data#Data#Data
 #Data#Data#Data

然后选择下拉选项,我希望它显示新数据

 #Data2#Data2#Data2
 #Data2#Data2#Data2
 #Data2#Data2#Data2

所以它需要加载一个新页面或刷新一些方法,因为它是通过 PHP 而不是 javascript 更改的。

【问题讨论】:

  • 你可以使用javascript来实现你的需求
  • Javascript唯一的问题是我需要限制我的数据值,并且不能将JS变量拉到php中。
  • 另一种选择是使用form,每当select的值发生变化时,你应该将变化发布到后端,并根据select的新值拉取数据
  • 你能给我举个例子吗?

标签: php mysql


【解决方案1】:

我认为form可能会更好,例如

<form id="myform" method="post">
<select name = 'peer-id' style = 'position: relative' onchange="change()">
    <option value="1">12</option>
    <option value="2">15</option>
    <option value="3">16</option>
    <option value="4">18</option>
</select>
</form>

<script>
function change(){
    document.getElementById("myform").submit();
}
</script>

在上面的代码中,每当你改变select的值时,它都会post到后端,然后根据posted的值,你可以做你想要的,在php中获取peer-id,你可以使用以下代码

$peer-id = $_POST['peer-id'];

希望有所帮助!

【讨论】:

  • 不错!如何将该值作为变量在 php 中使用?它需要放入$peer = mysql_query("SELECT Peer FROM rate Group By Peer Where peer = 'variable'");
  • 在 php 中,你可以这样使用:$peer-id = $_POST['peer-id']
【解决方案2】:

在选择标签中应用此代码希望这有效

<select  onchange="location = this.options[this.selectedIndex].value;" style="text-decoration:none;">
 <option value="customers.php"></font></option>
</select>

【讨论】:

    【解决方案3】:

    安装了静态选项,你可以这样做:) 这里你从数据库中获取所有选项。只需将其替换为静态选项

        $peer = mysql_query("SELECT Peer FROM rate Group By Peer Where peer = 'variable'");
        $result_peer = mysql_query($peer);
    
                if($result_peer){
    
                    while($row_peer = mysql_fetch_array($result_peer)){
    
                        echo'<option value='.$row_peer['Peer'].'>'.$row_peer['Peer'].'</option>';
    
                }
    

    【讨论】:

      【解决方案4】:

      我同意使用form,这样您就可以使用提交按钮回显到页面(代码已测试):

      <form id="myForm" method="POST">
         <select name="select" onchange="<?php echo $_SERVER['PHP_SELF'];?>">
         <option value="N">No</option>
         <option value="Y">Yes</option>
         </select>
         <input type="submit" name="formSubmit" value="Submit" >
      </form>
      
      <?php
      
      if(isset($_POST['formSubmit']) ){
        $var = $_POST['select'];
        $query = "SELECT * FROM table_name WHERE DesiredField='$var'";
        $result = mysql_query($query)
        or die(mysql_error());
      
        while($row = mysql_fetch_array($result)){
          $var2 = $row['FieldName'];
          echo "First field: " . $var2 . "<br>";
          // and so on for what you want to echo out
        }
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-11
        • 2014-08-03
        • 2014-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多