【发布时间】:2022-01-07 11:13:57
【问题描述】:
我尝试了很多谷歌,并在其他 stackoverflow 类似的帖子中进行了搜索,但我真的找不到对我有帮助的东西 -.-
我正在尝试让我的网站刷新并更新我的表格值,并且只显示与下拉菜单相同的值。 当我进入页面时,我希望它像现在一样显示所有内容,然后在选择 CustomerCountryCode 时更新站点和我的 SQL 语句 I only want to show the 'DK', when choosing from the dropdown menu
History.php(WHERE 应该类似于 $_POST['SelectedValue'] 而不是 'DK')
if (isset($_POST['SelectedValue'])) {
$sql = "SELECT * FROM [CampaignModule].[dbo].[RetailCampaign] WHERE CampaignNo <> '' AND
CustomerCountryCode like 'DK' ORDER BY ID DESC"
}else {
$sql = "SELECT * FROM [CampaignModule].[dbo].[RetailCampaign] WHERE
CampaignNo <> '' ORDER BY
ID DESC";
}
$sqlFilter = "SELECT DISTINCT CustomerCountryCode FROM [CampaignModule].
[dbo].[RetailCampaign]";
$params = array();
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);
$stmt = sqlsrv_query($conn, $sql, $params, $options);
$stmt2 = sqlsrv_query($conn, $sqlColumns, $params, $options);
$stmtFilter = sqlsrv_query($conn, $sqlFilter, $params, $options);
echo '<select name="Filter" id="FilterSelect" class="form-control">
<option>Choose Country Filter</option>';
while ($row = sqlsrv_fetch_array($stmtFilter, SQLSRV_FETCH_NUMERIC)) {
echo "<option value='$row[0]'>$row[0]</option>";
}
echo '</select>';
HistoryControl.js - 我尝试创建一个 post 函数来插入数据,并在菜单更新时重新加载页面 - 我尝试了其他一些东西。
$(document).ready(function () {
$("#FilterSelect").change(function () {
var value = $("#FilterSelect").val();
$.ajax({
url: "../Model/History.php",
type: "POST",
data: { 'SelectedValue=': value },
success: function () {
location.reload();
}
});
});
});
任何形式的优化和其他“最佳实践”都非常受欢迎。 如果需要更多信息或代码,请告诉我
更新 - 解决方案
在@Lam Tran Duc 和@Manashree Shah 的帮助和想法下
历史.php
if (isset($_SESSION['SelectedValue'])) {
$_POST['SelectedValue'] = $_SESSION['SelectedValue'];
}
if (isset($_POST['SelectedValue'])) {
$_SESSION['SelectedValue'] = $_POST['SelectedValue'];
$sql = "SELECT * FROM [CampaignModule].[dbo].[RetailCampaign] WHERE
CampaignNo <> ''
AND CustomerCountryCode='" . $_POST["SelectedValue"] . "'";
} else {
unset($_SESSION['SelectedValue']);
$sql = "SELECT * FROM [CampaignModule].[dbo].[RetailCampaign] WHERE
CampaignNo <> ''
ORDER BY ID DESC";
}
HistoryControl.js
$(document).ready(function () {
$("#FilterSelect").change(function () {
var value = $("#FilterSelect").val();
$.ajax({
url: "../Model/History.php",
type: "POST",
data: { SelectedValue: value }, // remove the '=' character
success: function (data) {
//alert(data)
location.reload();
}
});
});
});
当我这样做时它正在工作,但我需要它来清除我遇到很多麻烦的 $_SESSION 变量,并最终找到了清除我 historyPage.php 中的会话的解决方案
<?php
include "../Model/History.php";
session_unset();
?>
【问题讨论】: