如何在php下拉列表中显示特定值?

时间:2016-02-03 06:10:04

标签: php mysql mysqli

Tally Table

当我点击编辑按钮时,它应该转到编辑页面enter image description here

当我想用coursename =" php"编辑行时在下拉菜单名称应该选择为PHP,因为课程名称和纸张名称,纸张描述存在于不同的表格我不能选择下拉列表中的特定值          

          if(isset($_GET['id'])) {
                  $table="papers";
                  $condition="paper_id=".$_GET["id"]."";
                  $select=selectlist($table,$condition);
                  $row=$list->fetch_array();
                  $table="courses";
                   $datalist=selectdata($table);
                   $data=Selectdata($table);
                   while($row1=$result->fetch_assoc())
                   {
                    $coursename=$row1['course_name'];


                  $courseid=$row['course_id'];
                   $paper=$row['paper_name'];
                  $paperdesc=$row['paper_description'];
                  $_SESSION['pid']=$row['paper_id'];  

                echo '<option value="'. $row1['course_id'].'" selected="'. $row1['course_id'].'=='.$courseid.'">'.$row1['course_name'].'</option>'; 
                  }
           }

                ?>

我已经尝试了上面的代码我知道问题出在&#34;选择&#34;请帮帮我

5 个答案:

答案 0 :(得分:3)

你几乎接近答案。

进行了一些修改,你就完成了。

您需要比较两个值

来自数据库的值(选定的值)和循环中的值

  

另一个建议是我们不应该在任何内部写任何逻辑   HTML标记。

     

HTML /模板仅用于将输出打印到屏幕。

     

我们应首先评估所有条件,然后打印HTML。

selected Reference

更改

echo '<option value="'. $row1['course_id'].'" selected="'. $row1['course_id'].'=='.$courseid.'">'.$row1['course_name'].'</option>'; 

要:

$selected = ($row1['course_id'] == $courseid) ? 'selected="selected"' : '';
echo '<option value="'. $row1['course_id'].'" ' . $selected . '>'.$row1['course_name'].'</option>'; 

答案 1 :(得分:2)

替换您的while loop

<?php
while($row1=$result->fetch_assoc())
{
    $coursename=$row1['course_name'];
    $courseid=$row['course_id'];
    $paper=$row['paper_name'];
    $paperdesc=$row['paper_description'];
    $_SESSION['pid']=$row['paper_id'];  

    if($courseid == $row1['course_id']) {
        echo '<option value="'. $row1['course_id'].'" selected>'.$row1['course_name'].'</option>'; 
    } else {
        echo '<option value="'. $row1['course_id'].'" >'.$row1['course_name'].'</option>'; 
    }
}
?>

答案 2 :(得分:1)

您可以按照以下方式执行:

while($row1=$result->fetch_assoc())
{
        $coursename=$row1['course_name'];
        $courseid=$row['course_id'];
        $paper=$row['paper_name'];
        $paperdesc=$row['paper_description'];
        $_SESSION['pid']=$row['paper_id'];  
        $selected="";
        if($row['course_id']==$course_id)
        {
            $selected="selected";
        }
       echo '<option value="'. $row1['course_id'].'" $selected>'.$row1['course_name'].'</option>'; 
}

答案 3 :(得分:0)

这使你的工作完成

while($row1=$result->fetch_assoc())
{
  $coursename=$row1['course_name'];
  $courseid=$row['course_id'];
  $paper=$row['paper_name'];
  $paperdesc=$row['paper_description'];
  $_SESSION['pid']=$row['paper_id']; 

  echo "<option value = '{$row1['course_id']}'";
  if ($courseid == $row1['course_id'])
    echo "selected = 'selected'";
  echo ">{$row1['course_name']}</option>";
}

答案 4 :(得分:0)

试试这个(在选项中使用三元运算符)

  echo '<option value="'. $row1['course_id'].'" selected="'. $row1['course_id'].'=='.$courseid.'">'.$row1['course_name'].'</option>';

改为

 <option value="<?= $row1['course_id'] ?>" <?= $row1['course_id']==$courseid? "selected":""?> > <?= $row1['course_name'] ?> </option>';