【问题标题】:How to retrieve the stored database data (i.e data selected from dropdown ) as selected data in the dropdown如何检索存储的数据库数据(即从下拉列表中选择的数据)作为下拉列表中的选定数据
【发布时间】:2012-05-10 09:13:16
【问题描述】:

到目前为止我所做的是将下拉选择的数据存储到数据库中,我现在想要的是基于在文本框中输入的用户名并单击搜索按钮,要选择的下拉项是存储在数据库中的数据以及用户可以根据需要选择的值列表。

我只想知道如何用来自数据库的选定数据替换文本 Select from here 以及允许用户在下拉列表中根据需要编辑数据并在单击后再次将其保存在数据库中提交按钮。

存储数据时代码如下

<?php
if( $_POST['registerbtn']){
$getuser=    mysql_real_escape_string(trim($_POST['user']));
$selected_value = $_POST['selectID'];
if($selected_value != 0){
require("./connect.php");
$query=mysql_query("SELECT * FROM user_details WHERE username='$getuser'");
$numrows= mysql_num_rows($query);
if($numrows == 0) { 
mysql_query("INSERT INTO user_details  VALUES (  '','$getuser','$selected_value')");
}
 else
$errormsg = "There is already a user with that username ." ;
mysql_close();
}
else
 $errormsg = "You  must select a linecard";
}
//code to fill dropdown 
require("./connect.php");
$sql = "SELECT select_id, linecard_name FROM selection ". "ORDER BY linecard_name";
$rs = mysql_query($sql);
$options = "<option value = '0'>  Select  from here </option>";
while($rownw = mysql_fetch_array($rs)){
$options .= "<option value = ".$rownw['select_id']." > ".$rownw['linecard_name']. " </option> ";
}
mysql_close() ;

$form = "<form action='./reg.php'  method='post'>
<table>
<tr>
<td>  </td>
<td>  <font color='red'> $errormsg </font> </td>
</tr>

<tr>
<td>  Username  </td>
<td>  <input type='text' name='user'  value='$getuser' />  </td>
</tr>

<tr>
<td> Select  Linecard </td>
<td>  <Select name='selectID' > $options  </select> </td>
</tr>

<tr>
<td>   </td>
<td>  <input type='submit' name='registerbtn' value='Register' />  </td>
</tr>

</form>";

echo $form;
?>      

根据文本框中写入的用户名从数据库中检索数据到下拉列表的代码如下

<?php
if( $_POST['savebtn']){
$search = $_POST['search'];
if($search == '' )
{
$errormsg1 = "Enter something in the search box";
}
else
{
require("./connect.php");
$query = mysql_query("SELECT  * FROM user_details  WHERE  username = '$search'");
$numrows= mysql_num_rows($query);
$rows=mysql_fetch_assoc($query);
if($numrows == 1)
{
$getuser = $rows['username'];
$select_id= $rows['linecard_id'];
//selection table where linecard_name is stored along with select_id   for the linecard_name to be displayed 
$query1  = mysql_query("SELECT *  FROM selection  WHERE  select_id = '$select_id' ") ;
$rows1=mysql_fetch_assoc($query1);
$linecard_name= $rows1['linecard_name'];
echo $linecard_name;

$sql = "SELECT select_id, linecard_name FROM selection ". "ORDER BY linecard_name";
$rs = mysql_query($sql);
while($rownw = mysql_fetch_array($rs)){
if( $select_id == $rownw['select_id'])  {
echo $select_id;
$options .= "<option value = ". $select_id ." > " .$linecard_name. " </option> ";
}
}

}
else
$errormsg1 = "Username was Not found";
mysql_close() ;
}
}

?>

<?php
$form ="<form action='ad.php' method='post' id='search' >
<div class='place'>
<tr>
<td>  </td>
<td>  <font color='red' > $errormsg1 </font> </td>
</tr>

<div class='frm2'> <input  type='text'  size='15'  value='$search'  name='search'    /> </div>
<div class='frm3'>      <input type='submit'   name='savebtn'  /> </div>
<div class='clear'> </div>
</div> 
</form>";
echo $form;
?>

<?php
require("./connect.php");
$sql = "SELECT select_id, linecard_name FROM selection "."ORDER BY linecard_name";
$rs = mysql_query($sql);
$options = "<option value = '0'>  Select  from here </option>";
while($rownw = mysql_fetch_array($rs)){
$options .= "<option value = ".$rownw['select_id']." > ".$rownw['linecard_name']. " </option> ";
}
mysql_close() ;
$form = "<form action='./reg.php'  method='post'>
<table>
<tr>
<td>  </td>
<td>  <font color='red'> $errormsg </font> </td>
</tr>
<tr>
<td>  Username  </td>
<td>  <input type='text' name='user'  value='$getuser' />  </td>
</tr>

<tr>
<td> Select  Linecard </td>
<td>  <Select name='selectID' > $options  </select> </td>
</tr>
<tr>
<td>   </td>
<td> <input type='submit' name='savebtn' value='Save' />   </td>
</tr>
</form>";
echo $form;
?>

【问题讨论】:

  • 中使用循环
  • 由于表单是 php 我得到错误,请帮助

标签: php phpmyadmin


【解决方案1】:

您可以将选项存储到一个变量中,我们称之为 $options,然后将其插入到您的 $form 变量中。最后你可以随心所欲地回显它。

<?php
require("./connect.php");
$sql = "SELECT select_id, linecard_name FROM selection ". "ORDER BY linecard_name";
$rs = mysql_query($sql);

$options = "<option value= '0' >  Select  from here </option>";
while($rownw = mysql_fetch_array($rs)){
    $options .= "<option value = ".$rownw['select_id']." > ".$rownw['linecard_name']. " </option> ";
} 
mysql_close() ;

$form = "<form action='./reg.php'  method='post'> 
<table>
<tr> 
<td>  </td>
<td>  <font color='red'> $errormsg </font> </td> 
</tr> 

<tr>
<td>  Username  </td>
<td>  <input type='text' name='user' />  </td> 
    </tr> 

<tr>
<td> Select  Linecard </td> 
<td> <Select name='selectID'> $options </select>
</tr> 

<tr>
<td>   </td>
<td> <input type='submit' name='registerbtn' value='Register' />   </td> 
</tr>

</table> 
</form>"; 

echo $form;

【讨论】:

  • 解析错误:语法错误,意外的 T_CONSTANT_ENCAPSED_STRING
  • @Sparkle:好的,它现在应该可以工作了,我在$form 中连接$options 时打错了。
  • 如果你使用双引号,你可以把变量 inside 字符串:$form = "blabla $options blabla";
  • 嘿@nadirs,你能告诉我如何在按下注册按钮时获得选定的值吗?
  • 读取后变量(根据您的代码选择的名称是'selectID'):$selected_value = $_POST['selectID'];
【解决方案2】:

请更改您的代码如下:

    <?php
        require("./connect.php");
        $sql = "SELECT select_id, linecard_name FROM selection ". "ORDER BY linecard_name";
        $rs = mysql_query($sql);

        echo "<form action='./reg.php'  method='post'> 
            <table>
              <tr> 
                <td>  </td>
                <td>  <font color='red'> $errormsg </font> </td> 
             </tr>         
             <tr>
                <td>  Username  </td>
                <td>  <input type='text' name='user' />  </td> 
             </tr>         
             <tr>
                <td> Select  Linecard </td> 
             <td>";
     ?>
           <Select name='selectID'>  
              <option value= '0' >  Select  from here </option>  
              <?php

                   while($rownw = mysql_fetch_array($rs)){
                     echo "<option value = ".$rownw['select_id']." > ".$rownw['linecard_name']. " </option> ";
                    }
                ?>
               </select>    
             </tr> 

            <tr>
                <td>   </td>
                <td> <input type='submit' name='registerbtn' value='Register' />   </td> 
            </tr>

        </table> 
     </form>    
 <?php   
    mysql_close() ;
 ?>

【讨论】:

  • 谁能告诉我如何在单击注册按钮时从下拉列表中获取选定的文本以及如何使每次单击注册按钮时不刷新下拉列表
  • 要获取值,可以使用 $_POST['selectID']。但是由于在选项标签的 value 属性中我们分配了 select_id,因此“select_id”将在 $_POST['selectID'] 中获得。要获取选定的文本,您必须使用选择查询。
  • 只有在页面重新加载时才会刷新下拉菜单。因此,如果您不想重新加载页面,请使用 ajax。
  • 请说一下,点击提交按钮时是否可以保留选定的下拉值
【解决方案3】:

试试这个

<?php
require("./connect.php");
$sql = "SELECT select_id, linecard_name FROM selection ". "ORDER BY linecard_name";
$rs = mysql_query($sql);
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
<table>
<tr> 
<td>  </td>
<td>  <font color='red'> $errormsg </font> </td> 
</tr> 

<tr>
<td>  Username  </td>
<td>  <input type='text' name='user' />  </td> 
</tr> 
<?php   while($rownw = mysql_fetch_array($rs)){ ?>
<tr>
<td> Select  Linecard </td> 
<td> <Select name='selectID'> <?php  echo "<option value = ".$rownw['select_id']." > ".$rownw['linecard_name']. " </option> "; ?>  </select>
</tr> 
<?php } //end of while loop ?>
<tr>
<td>   </td>
<td> <input type='submit' name='registerbtn' value='Register' />   </td> 
</tr>

</table> 
</form>;

【讨论】:

  • 我认为您的代码将创建更多带有单个选项的选择框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多