Php 使用下拉菜单查询mysql
这里是初学者;我已经搜索了很多例子,仍然需要一些帮助。 我希望用户从下拉框中选择一个选项,该选项将在mysql中查询一个表。我不明白如何(在我的html文件中)在getprojectstatus.php中显示select语句Php 使用下拉菜单查询mysql,php,html,mysql,Php,Html,Mysql,这里是初学者;我已经搜索了很多例子,仍然需要一些帮助。 我希望用户从下拉框中选择一个选项,该选项将在mysql中查询一个表。我不明白如何(在我的html文件中)在getprojectstatus.php中显示select语句 <html> <head> <title>Status Dashboard</title> </head> <body style="background:#19245e url('images/f
<html>
<head>
<title>Status Dashboard</title>
</head>
<body style="background:#19245e url('images/fade.png')repeat-x;font-size:12px;font-family: Arial;line-height:18px;color:#FFFFFF;">
<script>
function displayProject(option)
{
var x;
if (option=='sciplay')
{
x="show Sciplay selected, show notes, status, etc..."
}
else if (option=='oklahoma')
{
x="show OK selected, show..."
}
else if (option=='northdakota')
{
x="show North Dakota selected, show..."
}
else if (option=='audit')
{
x="show Audit selected, show..."
}
else if (option=='sggaming')
{
x="show SG Gaming selected, show..."
}
else if (option=='all')
{
x="..."//(option=(1+2+3+4+5))
}
document.getElementById("demo").innerHTML=x;
}
</script>
<div align="center">
<TABLE BORDER="1">
<TR>
<TD><img src='images/header.png'/>
</TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" bgcolor="C0C0C0" align="left">
<TH>Projects
</TH>
<TR>
<TD>
<FORM action="getprojectstatus.php" method="post">
<SELECT onload="displayProject(this.value);" onchange="displayProject(this.value);">
<OPTION VALUE='all'>ALL</OPTION>
<OPTION VALUE='sciplay'>Sciplay</OPTION>
<OPTION VALUE='oklahoma'>Oklahoma</OPTION>
<OPTION VALUE='northdakota'>North Dakota</OPTION>
<OPTION VALUE='audit'>Audit SSAE16</OPTION>
<OPTION VALUE='sggaming'>SG Gaming</OPTION>
</SELECT>
</FORM>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<p id="demo">
</p>
</TD>
</TR>
</TABLE>
</div>
</body>
状态仪表板
功能显示项目(选项)
{
var x;
如果(选项=='sciplay')
{
x=“显示所选内容、显示备忘、状态等…”
}
否则如果(选项=='oklahoma')
{
x=“显示选定的确定,显示…”
}
否则如果(选项=='northdakota')
{
x=“显示选定的北达科他州,显示…”
}
else if(选项=='audit')
{
x=“显示已选择的审核,显示…”
}
else if(选项=='sggaming')
{
x=“显示选定的游戏,显示…”
}
else if(选项=='all')
{
x=“…”/(选项=(1+2+3+4+5))
}
document.getElementById(“demo”).innerHTML=x;
}
项目
全部的
Sciplay
奥克拉荷马
北达科他州
审计SSAE16
SG游戏
和我的getprojectstatus.php文件:
<?php
//create connection variables
$host=`localhost`;
$user=`dashboard`;
$pw=`password`;
$db=`status`;
//create connection
$con=mysqli_connect("$host", "$user", "$pw", "$db");
//check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//take input from form and store as var queries
$option= $_POST['option'];
if ($option == 'sciplay')
{
$queries = "SELECT * FROM status where project=1"
}
else if ($option == 'oklahoma')
{
$queries = "SELECT * FROM status where project=2"
}
else if ($option == 'northdakota')
{
$queries = "SELECT * FROM status where project=3"
}
else if ($option == 'audit')
{
$queries = "SELECT * FROM status where project=4"
}
else if ($option == 'sggaming')
{
$queries = "SELECT * FROM status where project=5"
}
else ($option == 'all')
{
$queries = "SELECT * FROM status"
}
//store query as var result
$queries=$query;
$result=@mysqli_query($con,"$query");
//echo var result in table format
echo "<table border='1'>
<tr>
<th>Project</th>
<th>Subject</th>
<th>Status</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['project'] . "</td>";
echo "<td>" . $row['subject'] . "</td>";
echo "<td>" . $row['entry'] . "</td>";
echo "</tr>";
}
echo "</table>";
//close mysql connection
mysqli_close($con);
?>
提前谢谢你的帮助 我不确定我是否正确理解了这个问题,但这可能适合您:
<FORM action="getprojectstatus.php" method="post">
<SELECT onload="displayProject(this.value);" onchange="displayProject(this.value);">
<OPTION VALUE='none'>ALL</OPTION>
<OPTION VALUE='1'>Sciplay</OPTION>
<OPTION VALUE='2'>Oklahoma</OPTION>
<OPTION VALUE='3'>North Dakota</OPTION>
<OPTION VALUE='4'>Audit SSAE16</OPTION>
<OPTION VALUE='5'>SG Gaming</OPTION>
</SELECT>
</FORM>
我还建议您研究一些PHP框架,也许还可以学习MVC模式。好的,看来您还没有完全掌握基于web的系统中使用的客户机/服务器模型(我们一开始都在那里) 这里有一个简短的概述,然后我们将讨论你的问题所在
displayProject()
函数中添加表单提交请求),则(当前)无法将该新信息插入现有页面
因此,有两个潜在的答案可以解决您的问题:
如果您想更好地理解如何编写PHP应用程序,因为您打算在将来做更多的工作:
。。。然后,您应该将这两个单独的文件重写为一个单独的文件。(我几乎按原样插入了您的代码,我没有做任何错误检查)
。。。这里所做的一切就是将“option”选择发送到getprojectstatus.php,该文件为您的表生成HTML输出,然后一旦收到,它就会运行“success”,它只是将数据直接插入到具有“demo”id属性的元素中。你应该考虑把它改成<代码> <代码>,因为<代码> <代码>可能会引起头痛。你能解释一下卡在哪里吗?什么不适合您?当我从下拉列表中选择一个选项时,php中的select语句不会显示。您的html文件的名称是什么?您是否在这里显示了整个文件,或者是否有其他PHP正在进行中?我请求您帮助我了解您的页面是如何工作的。您在数据的传递方式上犯了一个简单的错误(一开始很常见)。感谢Teodor,这是一个更优雅的PHP代码。我想我问得不清楚。当用户单击下拉菜单中的一个选项时,我希望mysql表的结果在HTML页面中显示给用户。我想让html中的var x回显php查询中的select语句,这正是代码的问题所在。任何错误或不做你想做的事。请帮助我理解。我的代码不是我想要的。如何在函数displayProject中设置var x来显示在php中运行的查询?非常全面的答案。如果StackOverflow让我投票两次,我会的。
$option= $_POST['option'];
$queries = "SELECT * FROM status"
if ($option != 'none'){
$queries = "SELECT * FROM status where project=".$option
}
<?php
//create connection variables
$host=`localhost`;
$user=`dashboard`;
$pw=`password`;
$db=`status`;
//create connection
$con=mysqli_connect("$host", "$user", "$pw", "$db");
//check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//take input from form and store as var queries
$option= $_POST['option'];
if ($option == 'sciplay')
{
$queries = "SELECT * FROM status where project=1"
}
else if ($option == 'oklahoma')
{
$queries = "SELECT * FROM status where project=2"
}
else if ($option == 'northdakota')
{
$queries = "SELECT * FROM status where project=3"
}
else if ($option == 'audit')
{
$queries = "SELECT * FROM status where project=4"
}
else if ($option == 'sggaming')
{
$queries = "SELECT * FROM status where project=5"
}
else ($option == 'all')
{
$queries = "SELECT * FROM status"
}
//store query as var result
$queries=$query;
$result=@mysqli_query($con,"$query");
//The actual echo of the table display was moved to the area of the page it actually needs to go
//close mysql connection
mysqli_close($con);
?>
<html>
<head>
<title>Status Dashboard</title>
</head>
<body style="background:#19245e url('images/fade.png')repeat-x;font-size:12px;font-family: Arial;line-height:18px;color:#FFFFFF;">
<script>
function displayProject(option)
{
var x;
if (option=='sciplay')
{
x="show Sciplay selected, show notes, status, etc..."
}
else if (option=='oklahoma')
{
x="show OK selected, show..."
}
else if (option=='northdakota')
{
x="show North Dakota selected, show..."
}
else if (option=='audit')
{
x="show Audit selected, show..."
}
else if (option=='sggaming')
{
x="show SG Gaming selected, show..."
}
else if (option=='all')
{
x="..."//(option=(1+2+3+4+5))
}
document.getElementById("demo").innerHTML=x;
}
</script>
<div align="center">
<TABLE BORDER="1">
<TR>
<TD><img src='images/header.png'/>
</TD>
</TR>
<TR>
<TD>
<TABLE BORDER="0" bgcolor="C0C0C0" align="left">
<TH>Projects
</TH>
<TR>
<TD>
<!--
SOME CHANGES HERE: The form action is now pointing
to this same file, so that when you submit your form,
it goes back to this same file.
Also, I gave your select tag a "name" attribute so
that when you submit it, it'll actually be accessible
in the $_POST['option'] variable
-->
<FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<SELECT name="option" onload="displayProject(this.value);" onchange="displayProject(this.value);">
<OPTION VALUE='all'>ALL</OPTION>
<OPTION VALUE='sciplay'>Sciplay</OPTION>
<OPTION VALUE='oklahoma'>Oklahoma</OPTION>
<OPTION VALUE='northdakota'>North Dakota</OPTION>
<OPTION VALUE='audit'>Audit SSAE16</OPTION>
<OPTION VALUE='sggaming'>SG Gaming</OPTION>
</SELECT>
<input type="submit" value="Reload Form">
</FORM>
</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD>
<!-- a <p> tag can't technically hold a <table> tag, but one thing at a time here -->
<p id="demo">
<?php
// I'm just lifting your structure out and placing it here for clarity purposes.
// really, you can just write these tags out in HTML directly,
// not go into PHP and echo them
echo "<table border='1'>
<tr>
<th>Project</th>
<th>Subject</th>
<th>Status</th>
</tr>";
while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['project'] . "</td>";
echo "<td>" . $row['subject'] . "</td>";
echo "<td>" . $row['entry'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</p>
</TD>
</TR>
</TABLE>
</div>
</body>
<head>
<title>Status Dashboard</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
</head>
$.ajax({
url: 'getprojectstatus.php',
type: 'post',
data: 'option='+option,
success: function(data) {
$('#demo').html(data);
}
});