我遇到了问题,我不确定从哪里开始...
所以我的问题是-我需要使用一个下拉列表,该下拉列表由连接两个字段的查询自动填充,以使一个完整的-名称。
然后,根据所选人员的姓名,将输入的文本值更改为dob,然后在选择新名称时也更新每个更改。我尝试使用onchange事件进行选择,但无法找出正确的组合。
<?php
$conn = new mysqli('localhost', 'username', 'password', 'database') or die ('Cannot connect to db');
$result = $conn->query("SELECT id, dob, CONCAT(`space`,`firstname`,`lastname`) AS `whole_name` FROM `table`");
echo "<select name='id'>";
while ($row = $result->fetch_assoc()) {
$data = $id
unset($id, $name);
$id = $row['id'];
$name = $row['whole_name'];
echo '<option value="'.$id.'">'.$name.'</option>';
}
echo "</select>";
?>
<input type="text" id="text" value="<?php echo "$data" ?>"/>
注意事项-由于连接需要在字段中添加分隔符“空格”。
在当前状态下加载页面时,文本字段会为名字提供正确的值,但在更改select值时不会更新。
我是PHP和mySQL的新手-自我学习。任何帮助表示赞赏。
答案 0 :(得分:0)
这里不需要Ajax。您只需将dob值作为每个选项的特殊属性,然后在选择值更改时使用javascript更改文本输入。
这是在属性中带有dob的新选择:
while ($row = $result->fetch_assoc()) {
$data = $id
unset($id, $name);
$id = $row['id'];
$dob = $row['dob'];
$name = $row['whole_name'];
echo '<option dob="'.$dob.'" value="'.$id.'">'.$name.'</option>';
}
,然后在选择更改时更新输入,这里是jquery的示例:
$("select[name=id]").change(function(event) {
//get the dob attribute
var dob = $('option:selected', this).attr('dob');
// update the text input
$("input#text").val(dob);
});