单击事件从数据库中获取价格
Get price from database on click event
我是 html、javascript、php 和 Smarty 的新手。
我想知道如何在产品 selected 时显示我的价格。
我的数据库连接正常,我可以显示产品,但是当我 select 产品时,我希望他的价格以表格形式显示。
.php
<?php
$new = ['product_id','product_category','product_price','product_quantity','product_about','product_color'];
//Database connection
$db = mysqli_connect('xxx','xxx','xxx','xxx')
or die('Error connecting to MySQL server.');
//access Smarty template engine
require_once('Smarty-3.1.30/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'views';
$smarty->compile_dir = 'tmp';
//query product page
$query = "SELECT * FROM cs_shop";
mysqli_query($db, $query) or die('Error querying database.');
$result = mysqli_query($db, $query);
//query an array of products
$rows = array();
//loop start
while ($row = mysqli_fetch_array($result)) {
$rows[] = array(
'product_id' => $row['product_id'],
'product_category' => $row['product_category'],
'product_price' => $row['product_price'],
'product_quantity' => $row['product_quantity'],
'product_about' => $row['product_about'],
'product_color' => $row['product_color']
);
}
//db collect data
$smarty->assign('row', $rows);
//template
$smarty->display('index.tpl');
mysqli_close($db);
?>
.js
<script>
$(document).ready(function () {
//your code here
$(function () {
$('#products').change(function () {
$('#priceInput').val($('#products option:selected').data('data-price'));
});
});
});
</script>
.tpl
<select name="productID" id="products">
{foreach from=$row item="item"}
<option value="$item['product_category']" data-price="$item['product_price']" >{$item['product_category'] } : {$item['product_price'] }</option>
{/foreach}
</select>
<form>
Price : <input value="" name="Price" type="text" id="priceInput" disabled="disabled">
</form>
我想知道我在这里缺少什么?提前致谢
$(document).ready(function () {
$('#products').change(function () {
$('#priceInput').val($('#products option:selected').data('price'));
});
});
因为我在我的 java 脚本中使用了 .data,所以我读取了函数数据两次,那是我的错误..所以修复看起来像这样 -->
.js
$(document).ready(function () {
$('#products').change(function () {
var price = $('#products option:selected').data('price');
$('#priceInput').val(price);
});
});
所以基本上我的理解是,当它在我的 .tpl 中读取 'price' 时,它添加了 'data' 作为值,所以它看起来像 "data-price"。我得到的是 "data-data-price".
我是 html、javascript、php 和 Smarty 的新手。
我想知道如何在产品 selected 时显示我的价格。
我的数据库连接正常,我可以显示产品,但是当我 select 产品时,我希望他的价格以表格形式显示。
.php
<?php
$new = ['product_id','product_category','product_price','product_quantity','product_about','product_color'];
//Database connection
$db = mysqli_connect('xxx','xxx','xxx','xxx')
or die('Error connecting to MySQL server.');
//access Smarty template engine
require_once('Smarty-3.1.30/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'views';
$smarty->compile_dir = 'tmp';
//query product page
$query = "SELECT * FROM cs_shop";
mysqli_query($db, $query) or die('Error querying database.');
$result = mysqli_query($db, $query);
//query an array of products
$rows = array();
//loop start
while ($row = mysqli_fetch_array($result)) {
$rows[] = array(
'product_id' => $row['product_id'],
'product_category' => $row['product_category'],
'product_price' => $row['product_price'],
'product_quantity' => $row['product_quantity'],
'product_about' => $row['product_about'],
'product_color' => $row['product_color']
);
}
//db collect data
$smarty->assign('row', $rows);
//template
$smarty->display('index.tpl');
mysqli_close($db);
?>
.js
<script>
$(document).ready(function () {
//your code here
$(function () {
$('#products').change(function () {
$('#priceInput').val($('#products option:selected').data('data-price'));
});
});
});
</script>
.tpl
<select name="productID" id="products">
{foreach from=$row item="item"}
<option value="$item['product_category']" data-price="$item['product_price']" >{$item['product_category'] } : {$item['product_price'] }</option>
{/foreach}
</select>
<form>
Price : <input value="" name="Price" type="text" id="priceInput" disabled="disabled">
</form>
我想知道我在这里缺少什么?提前致谢
$(document).ready(function () {
$('#products').change(function () {
$('#priceInput').val($('#products option:selected').data('price'));
});
});
因为我在我的 java 脚本中使用了 .data,所以我读取了函数数据两次,那是我的错误..所以修复看起来像这样 -->
.js
$(document).ready(function () {
$('#products').change(function () {
var price = $('#products option:selected').data('price');
$('#priceInput').val(price);
});
});
所以基本上我的理解是,当它在我的 .tpl 中读取 'price' 时,它添加了 'data' 作为值,所以它看起来像 "data-price"。我得到的是 "data-data-price".