我的表格目前有2个下拉菜单。从第一个下拉列表中选择一个选项会填充第二个下拉列表。
这很好用。我只是注意到,当我在第二个下拉列表中添加一个新项目时,它将在数据库中输入它,但它不会显示在Internet Explorer的下拉菜单中。但是,如果我完全关闭浏览器并重新打开它,则会显示新条目。它几乎看起来像缓存类型错误。它适用于所有其他浏览器。
我正在使用的代码是
function populateSubCategory() {
$.getJSON('../inc_selectlogic.php', {category_id:$('#category_id').val()}, function(data) {
var select = $('#sub_category_id');
var options = select.attr('options');
$('option', select).remove();
$("#sub_category_id").append('<option value="">CATEGORY</option>');
$.each(data, function(index, array) {
$("#sub_category_id").append('<option value='+array['sub_category_id']+'>'+ array['sub_category_name'] +'</option>');
});
});
}
PHP是调用
$dsn = "HIDDEN";
$username = "HIDDEN";
$password = "HIDDEN";
$pdo = new PDO($dsn, $username, $password);
$rows = array();
if(isset($_GET['category_id'])) {
$stmt = $pdo->prepare("SELECT SQL_NO_CACHE sub_category_name, sub_category_id FROM sub_categories WHERE category_id = ?");
$stmt->execute(array($_GET['category_id']));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode($rows);
答案 0 :(得分:1)
您可以通过在请求网址末尾添加一个变量来解决缓存问题,该变量每次都会使请求唯一。
var time = new Date().getTime();
$.getJSON('../inc_selectlogic.php?time=' + time, {category_id:$('#category_id').val()}, function(data) {