无法在编辑记录的下拉列表中显示列表

时间:2013-02-05 12:34:43

标签: php mysql

在我的页面中,当用户登录他的帐户时,有两个字段名称和项目,所以每当他登录他的名字填写名称字段,他的所有项目都列在项目字段的下拉列表中。我的问题是当我编辑这个时记录它显示了他在提交时选择的名称和项目,但我希望在编辑时他的所有项目将在提交时间列出。

以下是我提交时下拉列表的项目代码:

<tr>
           <td>Select Project</td>
           <td>
           <select id="project" name="project">
           <option value="">-- select --</option>
           <?php while($row = mysql_fetch_array($result))
              {
                 $pm = $row['assignpm'];
                 $assignpm = explode(",",$pm);
                 if(in_array($_SESSION['id'], $assignpm)){ ?>

               <option value="<?php echo htmlspecialchars($row['projectname']);?>"><?php echo htmlspecialchars($row['projectname']); ?></option>
 <?php } }?> 
             </select></td>
         </tr>

这是我编辑项目字段的代码:

<tr>
           <td>Select Project</td>
           <td><select name="project" id="project" style="width:145px">
               <option>Select</option>
              <option selected="selected" value="<?php echo $fetuser1['project'];?>"><?php echo $fetuser1['project'];?></option>       
                 </select></td>
         </tr>

2 个答案:

答案 0 :(得分:0)

因此,在编辑时,您必须执行与“提交时间”相同的操作。

<tr>
    <td>Select Project</td>
    <td>
        <select name="project" id="project" style="width:145px">
            <option>Select</option>
            <?php 
                while($row = mysql_fetch_array($result)) {
                    $pm = $row['assignpm'];
                    $assignpm = explode(",",$pm);
                    if(in_array($_SESSION['id'], $assignpm)) {
                ?>
                <option 
                    <?php if($fetchuser1['project'] == $row['projectname']) echo "selected='selected'";?> 
                    value="<?php echo htmlspecialchars($row['projectname']);?>"
                >
                    <?php echo htmlspecialchars($row['projectname']); ?>
                </option>
            <?php } }?>
        </select>
    </td>
 </tr>

答案 1 :(得分:0)

...取决于 你的查询是什么样的? 一个查询?两个问题?一个关于用户ID,名称和东西,另一个关于项目...

或者所有项目都与获取的用户名在同一个表中? 你的存储方式如何(blob,json,简单列表)?

最后:将php内联与html混合是一个非常糟糕的习惯;)

说你有两个查询

//query SELECT projectname FROM whatevertable WHERE userid = 'users-id'

$options = "<option value="">-- select --</option>".PHP_EOL;
while($row = mysql_fetch_array($result))
{
    if(htmlspecialchars($row['projectname']) == $_SESSION['preselected']) //whatever
        $options. = "<option selected="selected" value=".htmlspecialchars($row['projectname']).">".htmlspecialchars($row['projectname'])."</option>".PHP_EOL;
    else
        $options. = "<option value=".htmlspecialchars($row['projectname']).">".htmlspecialchars($row['projectname'])."</option>".PHP_EOL;
}

并且在所有的PHP代码之后你可以

echo "<td>Select Project</td>
<td>
    <select id=/"project/" name=/"project/">
        {$options}
    </select>
</td>";

但是不知道你的任何代码但是那个小的php-mixed-html很难准确回答