我有一个 php/mysql 简单应用程序,用户可以在某一时刻从下拉列表中选择产品。我在数据库中有产品,我希望 - 当用户从下拉列表中选择产品1时,名为价格的字段将自动填充数据库中的值(value)价格。
choose product | price
最佳答案
数据库测试
CREATE TABLE IF NOT EXISTS `price` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_product` int(11) NOT NULL,
`price` decimal(10,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dumping data for table `price`
--
INSERT INTO `price` (`id`, `id_product`, `price`) VALUES
(1, 1, 10.20),
(2, 2, 15.50);
查询
public function getProductList() {
$stmt=$this->pdo->prepare('SELECT * FROM product');
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_OBJ);
}
public function getProductPrice($product_id){
$stmt=$this->pdo->prepare('SELECT * FROM price WHERE id_product=?');
$stmt->execute(array($product_id));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
return $row['price'];
}
您的演示文件
<?php
include_once('classes/DataLayer.class.php');
$dl = new DataLayer();
$product_list = $dl->getProductList();
?>
<html>
<head>
<title>Untitled 1</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function getPrice(){
$.get('script.php?product_id='+$('#product option:selected').val(), function(data){
$(' #price ').val(data);
})
}
</script>
</head>
<body>
<select id="product" name="product" onchange="return getPrice()">
<option value="">Select Product</option>
<?php
if(isset($product_list) && !empty($product_list)){
foreach($product_list as $product){
?>
<option value="<?php echo $product->id?>"><?php echo $product->productName?></option>
<?php
}
}
?>
</select>
<input type="text" name="price" id="price" >
</body>
</html>
下载演示文件:Downlaod
关于php - 从选择选项填充字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251081/