Php 如何获取通过echo创建的下拉列表的选定值?

Php 如何获取通过echo创建的下拉列表的选定值?,php,Php,我一直在使用以下方法在我的页面上的下拉列表中获取所选项目的值 $field = $_POST['dropdownlistname']; 但是,当我通过回显创建下拉列表时,这不起作用。以下是我的表格 <form name="searchForm" action="newCustomerSearchform.php" method="post"> <label><span></span> <input type="text" name=

我一直在使用以下方法在我的页面上的下拉列表中获取所选项目的值

 $field = $_POST['dropdownlistname'];
但是,当我通过回显创建下拉列表时,这不起作用。以下是我的表格

<form name="searchForm" action="newCustomerSearchform.php" method="post">
   <label><span></span> <input type="text" name="searchDB" /></label>
 <button type="submit" name="btnSearch" value="Search"  id="btnSearch" onclick="this.form.action">Search</button></label>

<?php 
   echo  '<select name="customers">';
     foreach ($_SESSION['names'] as $option => $value) {
                 echo  '<option value='.$value['ID'].'>'.$value['First_Name'].' '.$value['Surname'].'</option>';
}
                  echo  '</select>';


$test = $_POST['customers'];
echo $test;
</form>

搜寻
然后,newCustomer页面重新加载呈现的下拉列表,其中包含查询返回的所有行


然后,我想获取下拉列表中某个项目的值。不重新提交表单。

在后续请求将其发回给您之前,您将无法从选择框中获得该值

你需要条件逻辑

  • 用户是第一次获得页面吗?
    • 渲染选定对象
  • 用户是否将页面提交给我,并填写表单?
    • 访问
      $\u POST

在后续请求将值发回给您之前,您不会从选择框中获得该值

你需要条件逻辑

  • 用户是第一次获得页面吗?
    • 渲染选定对象
  • 用户是否将页面提交给我,并填写表单?
    • 访问
      $\u POST

无论您如何生成下拉列表,它都不会有值,直到您创建整个页面,将其发送给用户,然后以不同的脚本形式接收用户的响应


因此,您需要代码来创建页面,并需要代码来读取读者的响应。您是否同时执行这两项操作?

无论您如何生成下拉列表,它都不会有值,直到您创建整个页面,将其发送给用户,然后以不同的脚本形式接收用户的响应


因此,您需要代码来创建页面,并需要代码来读取读者的响应。你两者都做吗?

你说的动态是什么意思?是否会向包含代码的PHP页面发送POST请求?select语句的名称不是动态的。因此,它与使用静态选择列表没有任何区别?当您试图从
$\u POST['customers']
读取值时,是否发布了表单?您所说的动态是什么意思?是否会向包含代码的PHP页面发送POST请求?select语句的名称不是动态的。因此,它与使用静态选择列表没有任何区别?当您试图从
$\u POST['customers']
读取值时,是否已发布表单?提交表单后,将创建下拉列表。内容基于输入的表单。我想我需要另一个按钮来获取创建的下拉列表的值?@DanBarr在您的代码中,似乎您正在呈现列表,并在同一文件中依次访问
$\u POST
。如果不是这样,你应该澄清你的问题。一旦表单提交,就会创建下拉列表。内容基于输入的表单。我想我需要另一个按钮来获取创建的下拉列表的值?@DanBarr在您的代码中,似乎您正在呈现列表,并在同一文件中依次访问
$\u POST
。如果不是这样,你应该澄清你的问题。
<?php
include 'newCustomer.php';
connect('final');


    $searchtext = $_POST['searchDB']; 
    $searchtext = htmlspecialchars($searchtext); // stop HTML charkacters
    $searchtext = mysql_real_escape_string($searchtext); //stop SQL injection
    $query = "SELECT * FROM customer WHERE First_Name LIKE '%$searchtext%'";
    $data = mysql_query($query) or die(mysql_error());


    $Customers = array();
    $colNames = array();
    while($row = mysql_fetch_assoc($data)){// puts data from database into array, loops until no more

            $Customers[] = $row;

        }
         $anymatches = mysql_num_rows($data); //checks if the querys returned any results
                if ($anymatches != 0) {
                     $_SESSION['names']=$Customers;
                                 $colNames = array_keys(reset($Customers));




    }

            if ($anymatches == 0) 
                    { 
                        echo "Sorry, but we can not find an entry to match your query<br><br>"; 
                    } 




header("location: newCustomer.php");
?>