- 编辑更好地描述情景 -
我有一个包含2个表,技术人员和work_orders的MySQL数据库。技术人员表包含列techID,tech_surname,tech_firstname和tech_userlogin。 work_orders表包含columnsjobID(PK),wtechID,wtech_surname,wtech_firstname和wtech_userlogin等。
我有一个页面,其中包含一个列出已提交工单的重复区域,工单的日期是一个链接,它将URL中的jobID传递给包含更新表单的页面。表单中填充了从work_orders表中获取的数据,特别是jobID(客户名称,地址,装备修理,问题等)。在表单上是从技术人员表填充的下拉列表。此下拉列表列出了技术人员的tech_userlogin。我已将隐藏字段包含在表单页面中,wtech_userlogin和wtechID。 当我查看页面的来源时,它会显示work_orders表中的值,但我不知道如何将其用于查询以完成所需的结果。
当表单发布时,它会更新work_orders表。所有这些都有效。 我希望实现的是,如果已经选择了技术人员,则特定工单的wtech_userlogin(来自work_orders表)将成为下拉菜单的默认值。如果之前没有从下拉菜单中选择,我希望下拉菜单的默认值为“ - 选择技术员 - ”。我尝试过一些东西但到目前为止没有任何作用。
以下是下拉列表的代码:
<select name="tech_userlogin" id="tech_userlogin">
<?php
$sql="SELECT techID, tech_userlogin FROM technicians";
$result=mysql_query($sql);
$options="";
while ($row=mysql_fetch_array($result)) {
$techID=$row["techID"];
$tech_userlogin=$row["tech_userlogin"];
$options.="<option value=\"$tech_userlogin\">$tech_userlogin</option>";
}
if(empty($tech_userlogin)) {
die ('You must select a Technician');
}
?>
<option value='<?php echo $options; ?>' selected='selected'>""<?php echo $options; ?>
</select>
任何人都可以帮我解决这个问题吗?任何帮助将不胜感激。我是PHP和MySQL的新手。我正在学习网页设计课程,我们使用的是Dreamweaver。我想脱离Dreamweaver并在没有向导的情况下学习如何做到这一点。我已经能够发布我的表单了,我的所有插入,更新和删除功能都可以从我从互联网上拼凑起来的东西中发挥作用,但是这个让我感到难过。
干杯。
答案 0 :(得分:1)
这样的事情就是你想要的:
<select name="tech_userlogin" id="tech_userlogin">
<?php
$sql="SELECT techID, tech_userlogin FROM technicians";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{
$techID = $row['techID'];
$tech_userlogin=$row['tech_userlogin'];
// Here - check if the tech id in the query matches the logged in tech's id
$selected = ($techID == $_SESSION['techID']) ? 'selected="selected"' : '';
echo '<option value="' . $tech_userlogin . '" ' . $selected . '>' . $tech_userlogin . '</option>' . "\n";
}
?>
</select>
答案 1 :(得分:0)
好吧,你的代码有很多问题。让我们从我没有看到您指定选择的位置开始。您应该通过帖子将其发送到脚本。然后,在字符串中连接选项标记,然后将该字符串作为值添加到另一个选项。最后,您的变量$ tech_userlogin是数据库表技术人员中最后一行的tech_userlogin列的值。
编辑1:请参阅评论。
让我们试着解决它:
<?php
// first thing: check if a post was sent
if($_POST)
{
if(!empty($_POST['technician']))
{
@session_start();
$_SESSION['tech'] = $tech;
}
}
if(!empty($_SESSION['tech']))
{
$tech = $_SESSION['tech'];
}
echo '<form action="" method="post">
$sql = "SELECT `techID`,`tech_userlogin` FROM `technicians`";
$sql = mysql_query($sql);
if(!mysql_num_rows($sql))
{
echo 'There is no technician in the database'; // or use die for radical thinking
}
$options = '';
$technicians = array();
echo '<select name="tech_userlogin" id="tech_userlogin">';
if(empty($tech))
{
echo '<option value="">-- Select technician --</option>';
}
while($row = mysql_fetch_array($sql))
{
$technicians[] = $row;
$options .= '<OPTION VALUE="'.$tech_userlogin.'" '.((!empty($tech) && $tech == $tech_userlogin)) ? 'selected="selected"' : '').'>'.$tech_userlogin.'</option>';
}
echo $options;
echo '</select>';
echo '<input type="submit" value="Please submit you selection" />';
echo '</form>';
?>
我希望它有所帮助:)。