从一个选择和一个选择中获得价值从数据库中调用另一个select的值

时间:2017-03-22 08:36:27

标签: php mysql

我正在用PHP开发一个库项目。我在DB中创建了3个表的MYSQL:library_books,student_db& issued_books。

有一个名为issue.php的页面,该页面是为管理员创建的,用于向学生发放书籍。该页面包含Book_id,Book_title,Author,Class(从I到XII的学生班级),Student_name& Student_id(禁用文本类型)。

我从library_books数据库本身获取所有与书相关的详细信息,

我想要实现的是当用户选择一个值Class字段时,页面应该自动获得在该类中注册的学生姓名列表。当从此列表中选择Student_name时,Student_id应自动被提取到Student_id字段中。

这是代码,请看看

<select required class='styled-select green semi-square' style='width: 15%; margin-left: 5px;' id='Class' name='st_Class'>
    <option selected='true' disabled='disabled' value=''>Select Class</option>
    <option>I</option>
    <option>II</option>
    <option>III</option>
    <option>IV</option>
    <option>V</option>
    <option>VI</option>
    <option>VII</option>
    <option>VIII</option>
    <option>IX</option>
    <option>X</option>
    <option>XI</option>
    <option>XII</option>
    </select>   
    <select required class="styled-select green semi-square" style="width: 15%" id="st_name" name="st_name">

    <option selected='true' disabled='disabled' value=''>Select Student</option>
<?php
    $query2 = mysqli_query($conn,"SELECT Student_name FROM Student_db WHERE Class='st_Class'");
while($row1 = mysqli_fetch_array($query2,MYSQLI_NUM))
{
    $st_name = $row1[6];
    $st_id = $row1[5];
}
?>
    <option><?php echo(isset($_POST['st_name'])&&($_POST['st_name']=='1'));?></option>
    </select>
    <input type="text" id="st_id" value="<?php echo $st_id?>" name="st_id" disabled/>

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的需求,为了使用select选项将数据库中的某些数据填充到div / input中,您可以查看jQuery change function。直接来自doc:

  

将更改事件附加到选择

在您的情况下,您可以从您拥有ID的选择列表中检索学生数据(或者从名称中识别ID,只要名称链接到唯一名称,它就会以任何方式工作数据库中的ID)

  

我肯定会为您编写代码,只是告诉您路径:)

请记住在页面的头部包含jQuery库:)

您可以玩的示例:

- &GT;选择列表(应该来自PHP查询,这里硬编码使其变得简单)

<select id="st_id">
<option value=""> -- select --</option>
<option value="1"> Name 1</option>
<option value="2"> Name 2</option>
<option value="3"> Name 3</option>
</select>
<p>RESPONSE : <input type="text" name="response" id="response" value="" /></p>

- &GT; Jquery部分:

$(document).ready( function() { // to make sure it's all loaded before use

$("#st_id").on('change', function() { // #st_id is the ID of your select
          var id = $(this).val(); // to catch the value of the selected option
          $.ajax({
           url: "select_get_data.php", // page that will catch/handle the ID and retrieve data from DB accordingly
           method: "POST",
           data: "id="+id, // the selected ID
           success: function(resp){ // if PHP sends correct answer
           $("#response").val(''+resp+''); // #response is the ID of the div/input where data response will be populated
            },
            error: function (request, status, error) {
            alert(request.responseText);
            }
          });
         });
});

- &GT; PHP部分

<?php
error_reporting(E_ALL); ini_set('display_errors', 1); // to handle errors if any

$id = $_POST['id']; // from AJAX -> here, you must perfom some checking
// never ever trust data from users !!!

echo"Name is MYNAME with ID #$id"; // this will be the response handled in JS by the line
// success: function(resp){ // your echo will be known as 'resp'

// of course, you need to write all checking and query instead of just echo'ing
// but that's the way it works...
?>
  

希望这会有所帮助...