无法获取HTML选择数据到POST.PHP

时间:2016-10-20 15:07:12

标签: php html-select

我有一个input.php文件,其中包含两种类型的查找字段。一个是从一系列<option>标签($ grade_1)中填充的,另一个字段是从数据库中的一个列($ role_1)填充的。两个查找字段在input.php表单中都显示正常。我无法根据数据库输入($ role_1)将用户选择放入post.php。我使用ISSET作为测试代码来查看是否可以获取$ role_1的计数和数据。我可以回显Count($ nroles),但不显示数据元素($ role_1)的回显。变量$ grade_1正常工作。 这是输入表单的一部分:

<?php $link = new mysqli("localhost","USER","PASSWORD", "DATABASE");
    if (mysqli_connect_errno())
    {   printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    if (!$link->set_charset("utf8")) 
    {   printf("Error loading character set utf8: %s\n", $link->error);
        exit();
    }
    $role_sql = "SELECT role FROM lu_role";
    $role_result2 = mysqli_query($link, $role_sql) or die (mysqli_error($link));
    $options = "";
    while($row2 = mysqli_fetch_array($role_result2))
    {
        $options = $options."<option value=''>$row2[0]</option>";
    }
?>
<form action="post.php" method="post">
    <table class="table_600_reg">
      <tr>
        <td width="120">
         <select name="grade_1" style="background-color:#EFD381;">
            <option value="0">Choose Grade</option>
            <option value="1">First</option>
            <option value="2">Second</option>
            <option value="3">Third</option>
            <option value="4">Fourth</option>
            <option value="5">Fifth</option>
            <option value="6">Sixth</option>
            <option value="7">Seventh</option>
            <option value="8">Eighth</option>
          </select>
        </td>
        <td width="200" align="left">
            <select name="role_1" style="background-color:#EFD381;">
                <?php echo $options;?>
            </select>               
        </td>
      </tr>
    </table>
</form>

Post.PHP文件的片段是:

$link = new mysqli("localhost","USER","PASSWORD", "DATABASE");
  if (mysqli_connect_errno())
   {
   printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}
//* change character set to utf8 */
//Print an error if utf8 can not be loaded
if (!$link->set_charset("utf8")) 
{
    printf("Error loading character set utf8: %s\n", $link->error);
    exit();
}
$role_1 = mysqli_real_escape_string($link, $_POST[role_1]);
$grade_1 = mysqli_real_escape_string($link, $_POST[grade_1]);
if(!isset($role_1)) 
  {
    echo("<p>You didn't select any role_1!</p>\n");
  } 
else
  {
    $nroles = count($role_1);
    echo("<p>You selected $nroles roles: ");
    for($i=0; $i < $nroles; $i++)
    {
      echo($role_1[$i] . " ");
    }
    echo("</p>");
    exit;
  }

为什么我看不到$ role_1变量中的数据? 谢谢你看这个。

1 个答案:

答案 0 :(得分:1)

$options = $options."<option value=''>$row2[0]</option>";

值为空字符串