2012-02-26 94 views
1

我有一个单选框和2个下拉菜单,它们在提交时保存到mysql中。收音机框是yes或no以及在html中创建的2个下拉框。它目前正在全面运行并保存所有数据。从mysql中检索数据并以表格形式显示

我现在想要做的是当用户重新登录时,它会显示他们以前选择的内容(如果他们有)。

php脚本:

<?php 
session_start(); 
require_once("config.php"); 
if(!isset($_SESSION['username'])){ 
    header('Location: login.php'); 
    exit; 
}else{ 
    $sql = "SELECT attendance1 FROM user WHERE username = '".mysql_real_escape_string($_SESSION['username'])."'"; 
    $res = mysql_query($sql); 
    $row = mysql_fetch_array($res); 
    if(($row[0] == "Yes") || ($row[0] == "No")){ 
     header("Location: errorsubmit.html"); 
     exit; 
    } 
} 
if(isset($_POST['submit'])){   
    $sql = "UPDATE user SET attendance1 = '" . mysql_real_escape_string($_POST['attendance1']) . "' WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'"; 
mysql_query($sql) or die("Error in SQL: " . mysql_error()); 

    $sql = "UPDATE user SET colour1= '" . mysql_real_escape_string($_POST['colour1']) . "' WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'"; 
mysql_query($sql) or die("Error in SQL: " . mysql_error()); 

    $sql = "UPDATE user SET shade1= '" . mysql_real_escape_string($_POST['shade1']) . "' WHERE username = '" . mysql_real_escape_string($_SESSION['username']) . "'"; 
mysql_query($sql) or die("Error in SQL: " . mysql_error()); 

    header("Location: thanks.html", true, 303); 
} 
?> 

FORM:

<form> 
     <input name="attendance1" type="radio" id="Yes" value="Yes" checked="checked"/>Yes 
     <br /> 
<input name="attendance1" type="radio" id="No" value="No" />No 
     </h3></td> 
     <td> 
       <select name="colour1" id="colour1" > 
      <option selected="selected">Please Select</option> 
      <option>Red</option> 
      <option>White</option> 
      <option>Green</option> 
     </select> 
     </td> 
     <td><h3> 
       <select name="shade1" id="shade1" > 
      <option selected="selected">Please Select</option> 
      <option>light</option> 
      <option>heavy</option> 
     </select> 
     <td>&nbsp;</td> 
     <td><label> 
     <input type="submit" name="submit" id="button" value="Submit" /> 
     </label></td> 
    </tr> 
    </table> 

回答

1

你一定要检查,如果在数据库中的值具有选项字段的值,如果是的话,你可以在你的选项标签上回显一个“selected ='true'”。像

<option <?php if($row["column_name"] == "light") echo "selected=\"true\""; ?>>light</option> 
+0

似乎没有工作,虽然我知道它应该只是出来作为请当我在 – Jacob1 2012-02-26 01:36:31

2

尝试用下面:

你需要从数据库中获取价值,并选择框中的值匹配他们向他们展示选择。

<select name="shade1" id="shade1" > 
    <option>Please Select</option> 
    <option value="light" <?php if($val=='light') echo 'selected'; ?>>light</option> 
    <option value="heavy"<?php if($val=='heavy') echo 'selected'; ?>>heavy</option> 
</select> 

这里$val是可变的,具有从数据库检索到的值。

,同时增加你应该有:

<option value="light" >light</option> 
<option value="heavy">heavy</option> 
+0

感谢重新登录我试过这个值从下拉不看起来像他们在数据库中。即使我从“请选择”中删除选定的'012请选择' – Jacob1 2012-02-26 00:54:36

+0

似乎您需要为用户再次更新,因为您必须在选择框选项值中评估atttribute。请将它们重新更新 – 2012-02-26 00:58:28

+0

我已重新选择并提交。当我重新登录'请选择'时,每个下拉菜单都会显示:s – Jacob1 2012-02-26 01:06:28

相关问题