我正在用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/>
答案 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...
?>
希望这会有所帮助...