【问题标题】:Show the selected value in a form在表单中显示选定的值
【发布时间】:2014-04-04 11:40:42
【问题描述】:

如何将选定的值放入变量中并以另一种形式显示?

代码:

$con=mysqli_connect("localhost","root","","nih_bw");
// Check connection
if (mysqli_connect_errno()){
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"Select name from pools");
echo "<form action='' method='POST' ><select name='mypool'>";

$default_name = "foo_bar"; 
while($row = mysqli_fetch_array($result)){
  $opt_name = $row['name'];
  $str_selected = "";
  if($opt_name == $default_name){
      $str_selected = "selected";
  }
  echo "<option value='".$opt_name."' ".$str_selected." >" . $opt_name. "</option>";
}
echo "<input type='submit' name='submit' value='submit'/>";
echo "</select></form>";
mysqli_close($con);




if (isset($_Post['submit']))
{

echo $_POST['mypool'];

}

【问题讨论】:

  • 把它赋值给一个变量然后回显它?
  • 另一个表单在另一个页面上吗?
  • echo "选择:".$str_selected;这没有用。
  • 所以你应该创建一个帮助函数来创建你的select
  • 你为什么把其他问题删了又问过来了?

标签: php sql forms mysqli


【解决方案1】:

使用这个:

$default_name = "foo_bar"; 
while($row = mysqli_fetch_array($result)){
  $opt_name = $row['name'];
  if($opt_name == $default_name){
     echo "<option value='".$opt_name."' selected='selected'>" . $opt_name. "</option>"; 
  } else {
     echo "<option value='".$opt_name."'>" . $opt_name. "</option>";
  }
}

【讨论】:

    【解决方案2】:

    简单,只需使用表单标签并发布即可,

    <?php
    $con=mysqli_connect("localhost","root","","nih_bw");
    // Check connection
    if (mysqli_connect_errno()){
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    $result = mysqli_query($con,"Select name from pools");
    echo "<form action='ANOTHERPAGEURL' method='POST' ><select name='mypool'>";
    
    $default_name = "foo_bar"; 
    while($row = mysqli_fetch_array($result)){
      $opt_name = $row['name'];
      $str_selected = "";
      if($opt_name == $default_name){
          $str_selected = "selected";
      }
      echo "<option value='".$opt_name."' ".$str_selected." >" . $opt_name. "</option>";
    }
    echo "</select></form>";
    mysqli_close($con);
    ?>
    

    并在另一个页面中使用它,

    <?php
    echo $_POST['mypool'];
    ?>
    

    希望这可行

    【讨论】:

    • 如果我在同一页面上执行此操作,我会将操作更改为“”,但随后我得到:未定义索引:mypool in
    • 只需检查表单是否正确发布。如果不是通过按钮或一些 JS 的东西(如更改事件)使表单发布。它会正常工作
    • 也只需检查 if(isset($_POST['mypool'])) {echo $_POST['mypool'];} 这将起作用..这将避免未定义的错误。
    • 查看编辑代码,这对我不起作用。当我按下提交时,我什么也拿不出来。
    • 把这段代码放在关闭后... echo "";.. 然后关闭表单..
    【解决方案3】:

    您必须创建一个&lt;form&gt; 并发布它。

    试试这个代码:

    if(isset($_POST['mypool']))
       echo "Value is: " . $_POST['mypool'];
    
    echo "<form method='POST' action='#'>";
    echo "<select name='mypool'>";
    
    $default_name = "foo_bar"; 
    while($row = mysqli_fetch_array($result)){
      $opt_name = $row['name'];
      $str_selected = "";
      if($opt_name == $default_name){
          $str_selected = "selected";
      }
      echo "<option value='".$opt_name."' ".$str_selected." >" . $opt_name. "</option>";
    }
    echo "</select>";
    
    echo "<input type='submit' name='send' />";
    echo "</form>";
    

    如果您想处理另一个页面上的帖子,只需将 action='#' 替换为 action='yourPage.php' 并将此代码移到那里:

    if(isset($_POST['mypool']))
           echo "Value is: " . $_POST['mypool'];
    

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多