我正在尝试从mysql db表中获取两个变量,一旦用户选择了下拉选项,该表应该会自动填充。
下拉菜单将显示团队列表,输入框将显示选择团队的队长和副队长的名称(实际上,它只会在后端捕获其MemberID并将其保存在表格中)
我已经能够使用Javascript函数和Ajax来获取一名船长的名字。那部分工作正常。
我想要的是获得第二个队长的姓名/编号。
我的HTML / PHP代码在这里:
<script type="text/javascript" src="js/capt-dropdown.js"></script>
...
<table>
<?php $x = 0; ?>
<tr style="background-color:#FFF9C4">
<td>Select Team: </td>
<td><select name="teamcode" id="teamcode">
<option disabled selected value> - Select Team - </option>
<?php $sql_select = mysqli_query($conn, "SELECT teamcode, team FROM team");
while ($row = mysqli_fetch_assoc($sql_select)){
echo '<option value = " '.$row['teamcode'].'"> '.$row['team'].' </option>';
} ?>
</select>
</td>
</tr>
<tr>
<td>Captain 1: </td>
<td><input type="text" name="captain1" id="captain1"></td>
</tr>
<tr>
<td>Captain 2: </td>
<td><input type="text" name="captain2" id="captain2"></td>
</tr>
</tr>
</table>
JS文件:capt-dropdown.js
$(document).ready(function() {
$("#teamcode").change(function() {
var team = $(this).val();
if(team != "") {
$.ajax({
url:"get-captain.php",
data:{teamcode : team},
type:'POST',
success:function(response) {
var resp = $.trim(response);
$("#captain1").html(resp);
}
});
} else {
$("#captain1").html("<option value=''>--- Select ---</option>");
}
});
});
php文件:get-captain.php在这里:
if(isset($_POST['teamcode'])) {
$teamcode = trim($_POST['teamcode']);
$sql_select = mysqli_query($conn,"SELECT surname, preferred_name, memberid FROM member WHERE memberid in
((SELECT captain FROM captain WHERE year = YEAR(CURDATE()) AND teamcode = '$teamcode'),
(SELECT vcaptain FROM captain WHERE year = YEAR(CURDATE()) AND teamcode = '$teamcode'))");
while ($result = mysqli_fetch_assoc($sql_select)){
$name = ($result['surname']. ', '.$result['preferred_name']);
echo '<option value = " '.$result['memberid']. '">'.$name.'</option>';
}
}
成员表包含成员的姓名,姓氏和成员ID 队长表包含队长的历史数据 Captain table
get-captain.php中的查询正在运行,并且能够检索船长和vcaptain的姓名和ID。
阅读了几篇文章,但找不到与我在这里所做的类似的事情。
任何人都可以建议如何获取第二个队长(副队长)的详细信息吗? (即显示他的名字并获取他的会员ID)
请注意:这是包含许多其他信息的表格的一部分,因此,如果我在此处剪切和粘贴时错过一行,我深表歉意。
谢谢。
答案 0 :(得分:0)
抱歉,由于我的代表,我暂时无法发表评论,但是队长1和2是输入,为什么您要回显选项标签并将其插入captain1中。
您应该更改get-captain.php以获取关联数组,然后echo json_encode($array);
您的JavaScript可以解析json数组
var array=JSON.parse(response);
最后将数组值放入输入中
$("#captain1").html(arr[0]["surname"] + "," + arr[0]["preferred_name"]);
$("#captain1").val(arr[0]["memberid"]);
$("#captain2").html(arr[1]["surname"] + "," + arr[1]["preferred_name"]);
$("#captain2").val(arr[1]["memberid"]);
如果您与两个以上的队长打交道,那么您可以循环遍历数组并添加一个计数器。希望这是有意义的,我从来都不擅长解释。