gpt4 book ai didi

javascript - 从输入文本 TypeAhead 插件中选择一个值后,如何在 div 内显示图像?

转载 作者:行者123 更新时间:2023-11-29 09:25:24 25 4
gpt4 key购买 nike

我正在使用动态依赖 Twitter-TypeAhead用户在 html 选择框中选择一个值后,将填充输入文本。我想在用户在输入文本下拉列表中选择一个选项后获取一个值,并使用 php 或 jquery 在 div 中显示该值。实际上,我想在 div 内显示的值来自产品表“图像”列。

为此,我创建了一个名为产品的表,其结构如下所示:

id | productName    | categoryFK  | image
---------------------------------------------
01 | Nike Tenis | 1 | 001.jpg
02 | Adidas T-shirt | 2 | 002.jpg
03 | H. Shoes | 1 | 003.jpg

--> 表 products 包含一个调用的外键 categoryFK

为了显示上面的值,我有一个索引页面,其中包含一个填充有 php 代码的选择框和一个填充有 TypeAhead plugin 的输入文本。当用户在选择框中选择一个值时:

<!DOCTYPE html>
<html lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

<!-- jQuery UI library -->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script>

</head>
<body>

<div class="container">

<br>

<h1>TWITTER DYNAMIC TYPEAHEAD</h1>

<br>
<div class="row">

<?php
// Include the database config file
include_once 'dbConfig.php';

// Fetch all the category data
$query = "SELECT * FROM categories ORDER BY category ASC";
$result = $db->query($query);
?>

<!-- category dropdown -->
<div class="col-md-4">
<select id="categoryFK" name="categoryFK" class="form-control">
<option value="">select category</option>
<?php
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo '<option value="'.$row['categoryID'].'">'.$row['category'].'</option>';
}
}else{
echo '<option value="">Category not available</option>';
}
?>
</select>
</div>

<div class="col-md-4">

<input type="text" name="products" id="products" class="form-control input-lg" autocomplete="off" placeholder="" />

</div>

<div class="col-md-4">

<div> I would like to display image value here after select a value into input text #products dropdownlist </div>

</div>

</div>
</div>

</body>
</html>

下面是向 php 脚本发送请求的 Ajax 脚本 (fetch.php):

<script type="text/javascript">
var products;

$ ( function ()
{
$('#categoryFK').on('change', function(){
var queryID = $(this).val();

$.ajax({
url:"fetch.php",
method:"POST",
data: {
category: queryID
},
dataType:"json",
success:function(data)
{
$("#products").val ('');

products = data;
}
});
});

$('#products').typeahead({
source: function ( query, result )
{
result ( $.map(products, function (item)
{
return item;
}
));
}
});
});
</script>

最后,将响应发送到 Ajax 的 php 脚本 fetch.php:

<?php
include 'dbConfig.php';

if ( isset ( $_POST [ 'category' ] ) ) {
$request = $db->real_escape_string($_POST["category"]);

$query = "
SELECT * FROM products WHERE categoryFK = ".$request."
";

$result = $db->query($query);
$data = array ();

if ( $result->num_rows > 0 )
{
while($row = $result->fetch_assoc ())
{
$data[]=$row["productName"];
}

echo json_encode($data);
}
}
?>

如何改进 TypeAhead 脚本以在从输入文本 #products 下拉列表中选择值后在 div 内显示图像值?

最佳答案

你可以像这样使用 jquery ajax 进行更改

Html 和 jquery 示例

$(document).ready(function() {
$("#categoryFK").change(function() {
var src = $(this).val();
$("#result").html(src ? "<img src='path/to/your/image/" + src + ".jpg'>" : "");
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="categoryFK" name="categoryFK" required>
<option name="cat-1" value="cat-1">cat-1</option>
<option name="cat-2" value="cat-2">cat-2</option>
</select>
<div id="result"></div>

关于javascript - 从输入文本 TypeAhead 插件中选择一个值后,如何在 div 内显示图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59684332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com