gpt4 book ai didi

php - 使用下拉列表显示一类数据

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

我有一个数据库,其中有一个名为 products 的表,表中有标题、艺术家和其他一些行,其中包含每个产品的信息。我学会了展示数据库中的数据,我也找到了一种只展示一个类别的数据的方法。这听起来很容易。但我想将所有这些与一个下拉菜单结合起来,用户可以在其中选择他想从列表中看到的类别。我该怎么做?我认为我必须使用 javascript,但我发现的一些示例根本没有引用 javascript。

这是我显示数据库中所有数据的代码:

<?php
$con = mysql_connect("localhost","root","password");
mysql_query('SET NAMES UTF8');
if (!$con)
{
echo "problem with connection" .mysql_error();
}
?>
<?php
mysql_select_db("myapp",$link);
$result = mysql_query('SELECT * FROM products',$link);
while($row = mysql_fetch_array($result))
{
$myimage = '<img src="'.$row['image'].'" />';

echo "<div id='appear'>" . $myimage . '<br />' . $row['title'] . "<br
/>" . "<p style='color:red;' >" . "myprice " . $row['price'] . "€" . "</p>".
'<a href="image.php?id='.$row['id'].'">'
. "details" . "<a>" . "</div>" ;
}
mysql_close($link);

?>

下面是我只显示一个类别的数据的代码:

<?php
mysql_select_db("myapp",$link);
$result = mysql_query('SELECT * FROM products WHERE category="cd"',$link);
while($row = mysql_fetch_array($result))
{
$mycategory = $row['category'];
$myimage = '<img src="'.$row['image'].'" />';
echo "<div id='appear'>" . $myimage . '<br />' . $row['title'] . "<br
/>" .
"<p style='color:red;' >" . "price " . $row['price'] . "€" . "</p>". '<a
href="image.php?id='.$row['id'].'">'
. "details" . "<a>" . "</div>" ;
}
mysql_close($link);

?>

这是我非常简单的 html 下拉菜单

<select name="singlelist" id="singlelist" size="1" >
<option value="mycd" >CD</option>
<option value="mydvd" >DVD</option>
<option value="other" >other</option>
</select>

我没有提到我想要 2 个下拉列表,用户可以在其中选择子类别,但我相信如果我了解所有这些是如何工作的,我将能够让它工作。以前有其他人遇到过这个问题吗?

ps:我用的是mysql_*函数,因为它是学校的一个项目

最佳答案

就像 Jared 所说的那样,您可以分离 php 页面并将数据加载到 div 中。您可以使用 javascript 函数触发 php 页面加载到 div 上,也可以使用 onselect() 或 onchange() 触发此函数。

我希望这个示例代码对您有所帮助。

HTML:

<script type="text/javascript">
function getList(cat, url, containerid){
var xhr=false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try {
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){
}
}
}
}

if (xhr) {
var params = "?list="+cat
xhr.onreadystatechange = showContents;
xhr.open("GET", url+params, true);
xhr.send(null);
}
else {
alert("Sorry, but I couldn't create an XMLHttpRequest");
}

function showContents(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var outMsg = xhr.responseText;
}
else {
var outMsg = "There was a problem with the request " + xhr.status;
}

document.getElementById(containerid).innerHTML=xhr.responseText;
}

}
}

</script>

<select name="singlelist" id="singlelist" size="1" onchange="getList(this.options[this.selectedIndex].value, 'php_file.php', 'container')" >
<option value="cd" >CD</option>
<option value="dvd" >DVD</option>
<option value="other" >other</option>
</select>
<div id="container"> </div>

您应该在 getList 函数上传递 3 个参数:首先是类别,然后是 php 文件,最后是 div id。

像这个例子

onchange="getList('category', 'php_file', 'div_id')"

PHP:

<?php
if(isset($_GET['list'])){
mysql_select_db("myapp",$link);
$result = mysql_query('SELECT * FROM products WHERE category="'.$_GET['list'].'"',$link);
while($row = mysql_fetch_array($result))
{
$mycategory = $row['category'];
$myimage = '<img src="'.$row['image'].'" />';
echo "<div id='appear'>" . $myimage . '<br />' . $row['title'] . "<br
/>" .
"<p style='color:red;' >" . "price " . $row['price'] . "€" . "</p>". '<a
href="image.php?id='.$row['id'].'">'
. "details" . "<a>" . "</div>" ;
}
mysql_close($link);
}
?>

希望对您有所帮助。您也可能想访问此博客 http://crisostomozaidem.blogspot.com/这里有一些关于 php 的有用提示。

关于php - 使用下拉列表显示一类数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10786954/

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