#javascript #php #jquery #ajax #checkbox
#javascript #php #jquery #ajax #флажок
Вопрос:
У меня возникла проблема в моем проекте.У меня есть 2 вкладки, и на одной вкладке у меня есть флажки и кнопка отправки, и пользователь выберет из флажков, и при нажатии кнопки он получит то, что он выбрал из флажков на другой вкладке.Он работает отлично.Но иногда он не обновляет данные из ajax, jquery, и мне приходится завершать обновление моей страницы.Я не могу определить проблему, поскольку не получаю никакой ошибки. По крайней мере, мне приходится нажимать более 15 раз, тогда данные не будут обновляться, в противном случае все работает нормально. Вот мой js-код:
function getFahrzeuge() {
var opts = [];
$("#fahrzeuge input[type='checkbox']").each(function () {
if ($(this).is(':checked'))
{
opts.push($(this).attr("id"));
}
});
return opts;
}
function saveFahrzeugeWidget(opts){
if(opts.length == 0) return false;
$.ajax({
type: "POST",
url: "ajax/dashboard.php",
dataType : 'json',
cache: false,
data: {'filterOpts' :opts, 'aktion' : 'save-widget-vehicle'},
success: function(data){
//getFahrzeugeWidget();
$('#fahrzeuge').html(data['html']);
},
error: function(data){
console.log(data);
}
});
}
function getFahrzeugeWidget(opts){
if(!opts || !opts.length){
opts = allFahrzeuge;
}
$.ajax({
type: "POST",
url: "ajax/dashboard.php",
dataType : 'json',
cache: false,
data: {filterOpts:opts, 'aktion' : 'get-widget-vehicle'},
success: function(data){
$('#fahrzeuge').html(data.html);
},
error: function(data){
console.log(data);
}
});
}
function getFahrzeugeWidgetEdit(opts){
if(!opts || !opts.length){
opts = allFahrzeuge;
}
$.ajax({
type: "POST",
url: "ajax/dashboard.php",
dataType : 'json',
cache: false,
data: {filterOpts:opts, 'aktion' : 'get-widget-vehicle-edit'},
success: function(data){
$('#fahrzeuge').html(data.html);
},
error: function(data){
alert('error' data);
}
});
}
$('#fahrzeuge .butt-rahmen').live('click', function(){
var opts = getFahrzeuge();
if($(this).attr('id') == 'saveId')
{
saveFahrzeugeWidget(opts);
if($('#fahrzeuge input[type="checkbox"]:checked').length <=0) {
alert('überprüfen Sie bitte atleast ein fahrzeuge');
//getFahrzeugeWidgetEdit(opts);
}
}
});
Комментарии:
1. Добавьте временную метку к вашему URL-адресу AJAX, и он должен работать нормально. Просто добавьте <<ВАШ URL>> amp;_<<Временная метка>> и все будет работать так, как ожидалось
2. я пробовал до этого, но все еще сталкивался с той же проблемой…
3. Какой браузер вы используете? Вы пробовали браузеры saveral и все еще сталкивались с той же проблемой кэширования?
4. я использую Firefox… Сейчас я проверю в других браузерах… но я думаю, что проблема где-то в моем коде … по крайней мере, после 15 кликов не удается обновить мои данные … : ( где-то это небольшая проблема…
Ответ №1:
Ответ кэшируется. И вы получаете тот же ответ. Попробуйте добавить новый параметр к данным в качестве метки времени.
Итак, ваши данные должны выглядеть следующим образом.
data: {'filterOpts' :opts, 'aktion' : 'save-widget-vehicle', 'timestamp': new Date().getTime()},
Комментарии:
1. даже раньше я думал, что сожалею, что пытался, но все равно получаю то же самое … я не понимаю, иногда при нажатии кнопки он будет работать нормально, но иногда он не обновляет данные, и в firebug я вижу, что он передаст правильный параметр