在php

时间:2017-04-19 19:48:02

标签: php mysql

基本上我在学生数据库上工作并遇到以下问题: 加载学生表单时,会将所有学生姓名加载到选择列表中。每当我从列表中选择一名学生时,我都会显示学生的详细信息。下面是我到目前为止所做的,但是当我点击列表中的某个项目时,它只会保留一个名称,或者 - 选择学生 - 选项,但会显示下面的学生信息。

这是我到目前为止所拥有的。

<form name="list_student" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<p><select name="names[]">
    <option>--- Select Student ---</option> 
    <?php $students = list_students();
       foreach ($students as $student){
       echo '<option  value="'.$student['studentID'].'"  onclick="document.forms.list_student.submit()"> '.$student['firstName'].'</option>';
    }
    ?>
        </select>
</form>
<?php
if ($_SERVER['REQUEST_METHOD']==='POST') {

    foreach($_POST['names'] as $selectedOption){

    $student = get_student($selectedOption);
    echo "Student Name : ".$student['firstName']." ".$student['lastName']."<br />";
    echo "Address : ".$student['address']."<br />";
    echo "Telephone : ".$student['telephone']."<br />";
    echo "E-mail Address : ".$student['email']."<br />";
    echo $student['studentID'];

    }
}
?>

我真的希望有人可以帮助我。 谢谢。

2 个答案:

答案 0 :(得分:0)

你应该在每个选项上的select而不是onclick事件上尝试onchange事件。

答案 1 :(得分:0)

我假设选择框不是多下拉列表。对您的代码进行以下更改:

echo '<option' .$_POST[names][0] ==$student['studentID']?  'selected': ''. ' value="'.$student['studentID'].'" onclick="document.forms.list_student.submit()"> '.$student['firstName'].'</option>'

您只需将selected属性添加到所选选项即可。请注意我的代码可能不会像我在代码中假设的那样完全运行,但您可以了解您需要的内容。