Php 基于选择框选项,用MySQL值填充其他文本输入

Php 基于选择框选项,用MySQL值填充其他文本输入,php,mysql,sql,Php,Mysql,Sql,我有一个使用PHP从MySQL数据填充的选择框 <select> <?php $stmt = $pdo_conn->prepare("SELECT * from prices "); $stmt->execute(array()); $records = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach($records as $result2) { echo '<

我有一个使用PHP从MySQL数据填充的选择框

<select>
    <?php
    $stmt = $pdo_conn->prepare("SELECT * from prices ");
    $stmt->execute(array());
    $records = $stmt->fetchAll(PDO::FETCH_ASSOC);
    foreach($records as $result2) {
        echo '<option value="'.$result2["product"].'">'.$result2["product"].'</option>';
    }
    ?>
    </select>

在MySQL(prices)的同一个表中有一个retail列,如何将retail的值输入到文本输入中

<input type="text" name="unitprice" />


基于选择框中选定的行?

我建议使用JavaScript

选项1

我会将您的结果转换为JSON数组,并将其回送到JavaScript。这样,所有信息都会提供给用户

<select id="mySelectBox" onchange="changeValue(this.value);">
<?php
$json_array = array();
$stmt = $pdo_conn->prepare("SELECT * from prices ");
$stmt->execute(array());
$records = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($records as $result2) {
    $product = $result2["product"];
    $json_array[$product] = $result2['unitprice'];
    echo '<option value="'.$result2["product"].'">'.$result2["product"].'</option>';
}
json_encode($json_array, JSON_FORCE_OBJECT);
?>
</select>
<input type="text" id="unitPrice" name="unitprice" />


<script>
var json = <?php echo $json_array; ?>;
function changeValue(myValue) {
    document.getElementById("unitPrice").value = json[myValue];
}


</script>

var json=;
函数更改值(myValue){
document.getElementById(“单价”).value=json[myValue];
}

我想将所选商品的零售价值自动添加到单价文本输入中。正如我所说,我将对此进行编辑。正如您现在看到的,有javascript应该更新单价文本输入。看起来您有很多东西需要学习:P我建议您查找什么是json,以便理解这段代码。比复制和粘贴要好得多:)我将学习更多,但我需要快速完成:)-它似乎没有更新单价文本输入,只是编辑了select onchange=“selectchange();”-我目前没有办法测试这一点。即将使用JSFIDLE和编写的js数组。刚刚还发现了另一个错误!对不起,一定要明白发生了什么事。json_encode接受一个PHP数组并将其转换为一个json对象,类似于数组。这个JSON对象可以被JavaScript读取,许多其他语言可以获取JSON对象并将其解码为该语言版本的对象/数组。例如,在PHP中,您可以执行json_解码($json_数组);然后,您将能够像在PHP中一样正常访问该数组。一旦给出javascript,我们就可以在下拉菜单更改时访问该对象。