从php html中的sql结果填充下拉列表中获取所选值

从php html中的sql结果填充下拉列表中获取所选值,php,html,Php,Html,我已经在php中填充了sql结果中的下拉列表,现在我正在尝试将所选值获取到同一页面中的php变量,但它不起作用。你能帮忙吗。下面是代码 <?php $mid="mario"; $sql = "SELECT * FROM tbl_prdy" ; $result = mysqli_query($conn,$sql); echo "<select name='list'>"; while ($row = mysqli_fetch_ar

我已经在
php
中填充了
sql
结果中的下拉列表,现在我正在尝试将所选值获取到同一页面中的
php
变量,但它不起作用。你能帮忙吗。下面是代码

<?php
     $mid="mario";
     $sql = "SELECT * FROM tbl_prdy" ;
     $result = mysqli_query($conn,$sql);
     echo "<select name='list'>";
     while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
     echo "<option value='" . $row['col_of_fac'] . "'>" . $row['col_of_fac'] . "
     </option>";
     }
     echo "</select>";
     $varsel = $_POST['list'];
     echo "hai";
     echo $varsel;

 ?>

$varsel=$\u POST['list']不起作用。

您应该

1-使用表格

2-使用方法“POST”将变量发送到同一个文件

 <?php
     // display the errors
     error_reporting(E_ALL);
     ini_set("display_errors", 1);
 ?>

 <?php
     // when the form submitted
     if(!empty($_POST['list'])){
       echo $_POST['list'];
     }
 ?>

 <?php
     // connection test
     $conn=mysqli_connect("localhost","user","pass","db"); //replace the (user, pass, db) with your parameters
     if (mysqli_connect_errno())
     {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
       die();
     }

     //if your connection succeded
     $sql = "SELECT * FROM tbl_prdy" ;
     $result = mysqli_query($conn,$sql);
 ?>

 <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
  <select name="list">
    <?php while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)): ?>
      <option value="<?= $row['col_of_fac']; ?>"><?= $row['col_of_fac']; ?></option>
    <?php endwhile; ?>
  </select>
  <input type="submit" value="valider">
 </form>

如果要打印所选值,而不是不带表单

然后必须使用jquery

 <?php
      // display the errors
      error_reporting(E_ALL);
      ini_set("display_errors", 1);
  ?>

  <?php
      // when the form submitted
      if(!empty($_POST['list'])){
        echo $_POST['list'];
      }
  ?>

  <?php
      // connection test
      $conn=mysqli_connect("localhost","user","pass","db"); //replace the (user, pass, db) with your parameters
      if (mysqli_connect_errno())
      {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        die();
      }

      //if your connection succeded
      $sql = "SELECT * FROM tbl_prdy" ;
      $result = mysqli_query($conn,$sql);
  ?>

  <select name="list">
     <?php while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)): ?>
       <option value="<?= $row['col_of_fac']; ?>"><?= $row['col_of_fac']; ?></option>
     <?php endwhile; ?>
   </select>

   <p id="value-selected"></p>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script>
       $(function(){
           $("select[name=list]").on("change", function () {
                 var valueSelected = $(this).val();
                 $("#value-selected").html(valueSelected);
           });
       });
  </script>

$(函数(){ $(“选择[name=list]”)。在(“更改”上,函数(){ var valueSelected=$(this.val(); $(“#选定值”).html(选定值); }); });
$varsel=$\u POST['list'];他不工作了只有通过post方法提交表单时,它才有效

(使用当前代码时,将打印选择框,您将在不提交表单的情况下获取帖子) 逻辑应该是这样的 在表单中,选择框使用以下代码和用户选择并单击提交:

 <?php
     $mid="mario";
     $sql = "SELECT * FROM tbl_prdy" ;
     $result = mysqli_query($conn,$sql);
     echo "<select name='list'>";
     while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
     echo "<option value='" . $row['col_of_fac'] . "'>" . $row['col_of_fac'] . "
     </option>";
     }
     echo "</select>";
 ?>

  • 提交以下表单后,应执行代码,并在网络控制台的页面标题中,您可以看到所需的数据是否已传输到请求的页面


  • 请添加您的表格,以便我们可以帮助您更好地在insert query中发布您选择的姓名。@djac;结果是什么?“hai”和$varsel的值没有显示出来。我认为即使条件本身不起作用。仅供参考-下拉列表已填充。@djac请您解释一下……您到底在找什么?@bfahmi,它不工作,选定的值未显示。顺便问一下,我们为什么需要?@djac;您必须单击提交输入以接收$\u帖子;选择值后,单击“提交”,结果是什么?