[英]PHP $_GET to same page from form submit
我正在尝试使用$ _GET值在与表单相同的页面上加载,而不是打开新页面。 例如,该表单在我的页面“ products.php”上,并且我希望该表单按产品类型过滤数据库结果。 因此,在提交时,它应该重定向到“ products.php?type = tee”。
如果我在地址栏中手动键入它,则它就像一个超级按钮一样工作,但是我无法让表单提交来加载它。
这是我的代码(更新:这是整个文件,使用require_once到基本的html5模板中):
<?php
error_reporting(E_ALL); ini_set('display_errors', 1);
//Populate Items to Show
function populateItems($result){
while ($row = $result->fetch_assoc()){
if ($row['available']){
echo '<li><img src="', $row['image'], '" />';
echo '<ul>';
echo '<li><h1>', $row['product'], '</h1></li>';
echo '<li><h2>', $row['description'], '</h2></li>';
echo '<li><h3>$', $row['price'], '</h3></li>';
echo '</ul>';
echo '</li>';
}
}
$result->free();
}
//Create Item List
echo '<ul class="item">';
//Create Filter
echo '<li id="filter">';
if ($result = $conn->query("SELECT DISTINCT type FROM products")){
echo 'Filter Results By: <form method="GET" action="', $_SERVER['PHP_SELF'], '">';
echo '<select>';
echo '<option>Show All</option>';
while ($type = $result->fetch_assoc()){
echo '<option name="type" value="', $type['type'], '">', $type['type'], 's</option>';
}
echo '</select>';
echo '<input type="submit" value="Go" />';
echo '</form>';
}
echo '</li>';
//Find if Filter Exists
if (isset($_GET['type']) && $_GET['type'] != "" ){
$gettype = $_GET['type'];
$filtertype = $conn->query("SELECT * FROM products WHERE type='$gettype'");
$count = $filtertype->num_rows;
if ($count <= 0){
populateItems($conn->query("SELECT * FROM products"));
}else{
populateItems($conn->query("SELECT * FROM products WHERE type='$gettype'"));
}
}else{
populateItems($conn->query("SELECT * FROM products"));
}
//End Item List
echo '</ul>';
?>
我到处搜索,没有找到任何能完全回答我的问题的...任何帮助将不胜感激!
更改
<form method="post" action="">
至
<form method="get" action="">
您应将<option name="type"
命名为<select>
。
<option>
没有命名属性。
因此,您需要从<option>
删除name="type"
,并将<select>
更改为<select name="type">
如果要使用GET
则必须更改Method! 像这样:
...<form method="get" action="">...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.