如何更改由mysql填充的下拉列表更改后的输入值?

时间:2018-09-28 15:13:10

标签: javascript php html

我遇到了问题,我不确定从哪里开始...
所以我的问题是-我需要使用一个下拉列表,该下拉列表由连接两个字段的查询自动填充,以使一个完整的-名称。
然后,根据所选人员的姓名,将输入的文本值更改为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的新手-自我学习。任何帮助表示赞赏。

1 个答案:

答案 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);
});