用于清除php查询的下拉选项
我有下面的下拉框,它使用PHP查询来获取数据。它创建了一个包含3个条目的下拉列表:汽车、卡车、火车。在我选择一个选项后,它将执行一个用于清除php查询的下拉选项,php,mysql,Php,Mysql,我有下面的下拉框,它使用PHP查询来获取数据。它创建了一个包含3个条目的下拉列表:汽车、卡车、火车。在我选择一个选项后,它将执行一个GET,PHP将使用所选的类别进行更新。我添加了一个按类别显示文本的静态选项。如果我选择一个类别,然后返回“按类别查看”,我希望所有结果(汽车、卡车和火车)都能再次显示 <form name="form1" action="" method="GET"> <select name="category" onchange="this.form.sub
GET
,PHP将使用所选的类别进行更新。我添加了一个按类别显示文本的静态选项。如果我选择一个类别,然后返回“按类别查看”,我希望所有结果(汽车、卡车和火车)都能再次显示
<form name="form1" action="" method="GET">
<select name="category" onchange="this.form.submit();">
<option value="">View By Category...</option>
<?php while ($rows = mysql_fetch_array($query_category)) { ?>
<?php if(isset($_GET['category'])) { ?>
<option value="<?php echo $rows['category']; ?>" <?php echo $rows['category'] == $category ? 'selected' : '' ?> ><?php echo $rows['category'] ?></option>
<?php } else {?>
<option value="<?php echo $rows['category']; ?>"><?php echo $rows['category'] ?></option>
<?php } ?>
<?php } ?>
</select>
</form>
按类别查看。。。
按类别查看。。。
我发现了一个未声明的$category变量,我假设它是$\u GET['category']
您可能希望在这里对用户输入进行更好的卫生处理
当用户选择VIEW BY CATEGORY
从而导致url变为http://localhost/edit.php?category=
您应该设置一个测试,根据$\u GET['category
是否为空来选择记录
即:
按类别查看。。。
我发现了一个未声明的$category变量,我假设它是$\u GET['category']
您可能希望在这里对用户输入进行更好的卫生处理
当用户选择VIEW BY CATEGORY
从而导致url变为http://localhost/edit.php?category=
您应该设置一个测试,根据$\u GET['category
是否为空来选择记录
即:
按类别查看。。。
试试这个:
//This checks if variable defined
if(isset($_GET['category'])&&$_GET['category']!='')
问题是GET变量已设置,因此条件的计算结果为true。您需要考虑要设置的变量,但该变量等于零(实际值)
按照建议执行将意味着不再运行第一个查询,而是恢复运行第二个查询,并接收整个项目列表。尝试以下操作:
//This checks if variable defined
if(isset($_GET['category'])&&$_GET['category']!='')
问题是GET变量已设置,因此条件的计算结果为true。您需要考虑要设置的变量,但该变量等于零(实际值)
按照建议执行将意味着,您将不再运行第一个查询,而是返回到运行第二个查询,并接收整个项目列表。我需要从类别中创建列表的代码来帮助您。我想我可以看到它,请查看下面的答案,并查看它是否有帮助:)此外-这是一个灾难的秘诀。不要相信用户输入,al清理超级全局的方法。请看这篇文章我需要从类别中创建列表的代码来帮助你。我想我可以看到它,看看下面的答案,看看它是否有帮助:)此外-这是一个灾难的秘诀。永远不要相信用户输入,始终清理超级全局。请看这篇文章我认为这并不能回答问题。我将其解释为“如果选择了“按类别查看”选项,我如何将汽车、卡车和火车列出来?”我认为这并不能回答这个问题。我将其解释为“如果选择了“按类别查看”选项,我如何将汽车、卡车和火车列出来?”谢谢。这确实对我有所帮助。我给出了观点,但没有回答,因为RamRaider给出了解决方案首先。我没有包括查询代码的错误。:)没问题-但请先阅读SQL注入,然后再阅读mysqli或PDO。这确实帮了我的忙。我给了你点意见,但没有回答,因为RamRaider首先给出了解决方案。我没有包括查询代码的错误。:)没问题-但是请请阅读SQL注入,然后阅读mysqli或pdo
<?php
if( $_SERVER['REQUEST_METHOD']=='GET' ){
if( isset( $_GET['category'] ) ) {
if( !empty( $_GET['category'] ) ){
/* sql: query using known category from url */
} else {
/* sql: query to get all records as no category defined */
}
}
}
?>
<form name='form1' action='' method='GET'>
<select name='category' onchange='this.form.submit();'>
<option value=''>View By Category...</option>
<?php
while ( $rows = mysql_fetch_array( $query_category ) ) {
if( isset( $_GET['category'] ) ) {
/* There appeared to be an undeclared variable $category here */
$category=trim( $_GET['category'] );
$selected=$rows['category'] === $category ? 'selected' : '';
echo "<option value='{$rows['category']}' {$selected}>{$rows['category']}</option>";
} else {
echo "<option value='{$rows['category']}'>{$rows['category']}</option>";
}
}
?>
</select>
</form>
<?php
//Establish Connection with Server
$connection = mysql_connect("localhost", "em", "em");
$db = mysql_select_db( "em", $connection );
/* If category is defined in url, filter and assign as a variable - otherwise it is false */
$category = isset( $_GET['category'] ) && !empty( $_GET['category'] ) ? strip_tags( filter_input( INPUT_GET, 'category', FILTER_SANITIZE_STRING ) ) : false;
$query_featured = mysql_query("SELECT * FROM `tblClients` c WHERE c.`package` = 'featured'", $connection);
$query_category = mysql_query("SELECT * FROM `tblCategory`", $connection);
if( $_SERVER['REQUEST_METHOD']=='GET' ){
if( $category ){
/* sql: query using known category from url */
$sql="SELECT * FROM `tblClients` c WHERE c.`package`='standard' AND c.`category` = '$category'";
} else {
/* sql: query to get all records as no category defined */
$sql="SELECT * FROM `tblClients` c WHERE c.`package`='standard'";
}
$query=mysql_query( $sql );
}
?>
//This checks if variable defined
if(isset($_GET['category'])&&$_GET['category']!='')