2017-06-15 119 views
-1

我有一个名字和姓氏的MySQL数据库,我可以使用它填充下拉列表。但我想要一个下降。我也设法做到这一点。但是当我提交这些信息时,我被困住了,然后两个项目(第一个和第二个姓氏)被重新发回到我的数据库。PHP从两个mysql列下拉菜单

这是我迄今为止

<table align="center"> 
<form name="addreport" action="addreport.php" method="post"> 
<?php 
$options = ''; 
$filter=mysql_query("select * from students"); 
while($row = mysql_fetch_array($filter)) { 
    $options .="<option value = '".$row['firstname']."'>" . $row['firstname'] . " " .$row['surname']."'>" . $row['surname'] . "</option>"; 
} 


$menu="<name='filter'> 
     <select name='names'> 
     " . $options . " 
    </select></td>"; 
?> 
<tr><td><font color='white' size='6px'>Student Name:<?php echo $menu; ?></td></tr> 
<tr><td><font color='white' size='6px'>Teacher Name:<input type="text" name="location" size="12"/></td></tr> 
<tr><td><font color='white' size='6px'>Report:</td> 
<tr><td><textarea name="report" style="font-size:15px;width:800px;height:300px;"></textarea></td></tr> 
<tr><td><font color='white' size='6px'>Intervention:</td></tr> 
<tr><td><textarea name="interv" style="font-size:15px;width:800px;height:300px;"></textarea></td></tr> 
</table> 
<table align="center"> 
<tr><td><center><input type="submit" class="btn2" value="Add"></center></td></tr> 
</form> 
</table> 
</body> 
</html> 

棍子在我的形式发送信息上回我的数据库。正如你所看到的,我可以发回一回,但不能两回。请有人帮我组织这最后一部分。

+2

首先,而不是在PHP中处理,您可以更改您的查询为:'选择id,CONCAT(firstname,',surname)fr om学生'。并且''

+0

'$ options'永远不会被回显。你的问题很不明确,特别是关于你的具体编程问题。你写了很多你已经做的事情,但很少有你的问题,你如何试图解决它,以及为什么这个解决方案不适合你。 – hakre

+0

@hakre选项被回显,因为它与$ menu连接。 – ADyson

回答

0

首先,你不应该使用mysql驱动程序。使用mysqliPDO驱动程序。现在,当我开始了解您的问题时,您希望在下拉菜单中显示完整的名称,但只想更新名字。然后,你可以使用属性这样的select标签value: -

$filter=mysql_query("select * from students"); 

while($row = mysql_fetch_array($filter)) 
{ 
    $options .="<option value = '".$row['firstname'].",".$row['surname']."'>" . $row['firstname'] . " " .$row['surname'] . "</option>"; 
} 

// rest of the code 

现在试着理解代码。您的下拉看起来就像这样: -

数据: -

First Name   |  Sur Name 
---------------------------------------- 

Deepak      Dixit 
Coder      Developer 

HTML

<select name="names"> 
<option value = "Deepak,Dixit"> Deepak Dixit </option> 
<option value = "Coder,Developer"> Coder Developer </option> 
</select> 

在PHP端你需要用逗号(,)爆炸的选择值(这是你的选择)只有这样: -

<?php 

$first_name = explode(",", $_POST['names'])[0]; 
$sur_name = explode(",", $_POST['names'])[1]; 
<?php 

$first_name = explode(",", $_POST['names'])[0]; 
$sur_name = explode(",", $_POST['names'])[1]; 
+0

喜迪帕克。理解我的代码有点旧,但问题是我只是偶尔使用它,再加上我的代码从来没有在公司环境中看到外部世界。再加上它一次只有几页。我会尽快给你看看,看看我是怎么发展的。一旦我完成了这一步,我会努力尝试使用新版本。 P –

+0

@PaulM对不起,但我无法解决您的问题。要么编辑你的问题,并清楚地问清楚或在评论中提到。谢谢 –

+0

表>学生姓名 有专栏名称和姓氏 这填充我的动态下拉,这是上面的代码。 在我的下拉列表中,我可以同时查看名字和姓氏。 但是,只提交一个值写入我的下一个表。 我想将姓氏和姓氏都写回我的下一个表>报告表>名字和姓氏。 –