Проблемка на jquery ajax

12 3
psics
На сайте с 02.04.2009
Offline
130
933

Ситуация следующая:

при выборе vKom == 1 выдает сообщение, а если после этого выбрать vKom == 2, может показать данные полученные ранее в vKom == 1

Данные получается хранятся в кеше чтоли. Вопрос как от этого избавиться?

if(vKom == 0){

$('#result').text('Выберите комплектацию');
} else if(vKom == 1){

$('#submit').click(function(){

$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=8&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').append(msg);

}
});

});
} else if(vKom == 2){
// обработки и вытяжки из бд.

$('#submit').click(function(){
$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=2&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').html(msg);

}
});
});
} else if(vKom == 3){

$('#submit').click(function(){
$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=9&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').html(msg);

}
});
});
} else {
$('#result').text('Error 2');
}
});
[Удален]
#1

psics, после обработки присвойте vKom нужное значение

psics
На сайте с 02.04.2009
Offline
130
#2

если честно, то не понял.

C
На сайте с 04.02.2005
Offline
291
#3

попробуйте

url: "mysql.php?vKom="+vkom,

сможете избавиться от серверного кеширивания, если оно там есть

psics
На сайте с 02.04.2009
Offline
130
#4
Chukcha:
попробуйте
url: "mysql.php?vKom="+vkom,

сможете избавиться от серверного кеширивания, если оно там есть

Тогда нужно переделать и php файл

http://s017.radikal.ru/i430/1303/c3/de7a3f77c9f3.png

[Удален]
#5
psics:
если честно, то не понял.

сразу после обработки if(vKom==

установите vKom например в vKom=99999

else if(vKom == 1){

$('#submit').click(function(){

$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=8&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').append(msg);

}
});
vKom=99999
});
psics
На сайте с 02.04.2009
Offline
130
#6
burunduk:
сразу после обработки if(vKom==
установите vKom например в vKom=99999

Этот вариант не помог.

[Удален]
#7
psics:
Этот вариант не помог.

не могёт такого быть он будет попадать в условие

else {
$('#result').text('Error 2');
}

или давайте полный код, откуда вообще берётся значение vKom

C
На сайте с 04.02.2005
Offline
291
#8

А!!! ха-ха-ха

click накапливается..

надо его отбиндить, а пото прибиндить

psics
На сайте с 02.04.2009
Offline
130
#9
burunduk:


или давайте полный код, откуда вообще берётся значение vKom

//Проверка сменилась ли форма #marka 

$("#marka").change(function(){
var vMarka = $('#marka option:selected').val();

if (vMarka == 0){
//добавить код дизайблед для следующего селекта
$('#result').html('Ничего не выбрано');
$('#kom').hide();
} else if(vMarka == 1){//если выбрано марку с id=1
$('#model').removeAttr('disabled');
$('#model').html('<option value="0">Выберите модель</option><option value="1">C-Elysee</option>');
//добавить код выбора моделей
$('#kom').hide;
//если выбрано модель
$('#model').change(function(){
var vModel = $('#model option:selected').val();
if(vModel == 0) {
$('#result').html('Ничего не выбрано');
} else if (vModel == 1){
//добавить код выбора комплектации
$('#forKom').html('<select id="kom" style="width:200px;"><option value="0">Выберите комплектацию</option><option value="1">Attraction</option><option value="2">Trandance</option><option value="3">Exclusive</option></select>');

//при изменении комплектации
$('#kom').change(function(){
var vKom = $('#kom option:selected').val();
if(vKom == 0){
$('#result').text('Выберите комплектацию');
} else if(vKom == 1){

$('#submit').click(function(){

$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=8&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').append(msg);

}
});
vKom=99999
});
} else if(vKom == 2){
// обработки и вытяжки из бд.

$('#submit').click(function(){
$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=2&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').html(msg);

}
});
vKom=99999
});
} else if(vKom == 3){

$('#submit').click(function(){
$.ajax({
type: "POST",
url: "mysql.php",
data: "knum=9&mnum=1&modnum=1",
success: function(msg){
$('#result').html('');
$('#result').html(msg);

}
});
vKom=99999
});
} else {
$('#result').text('Error 2');
}
});



} else {
$('#result').html('Error');
}
});

} else if (vMarka == 2) {//если выбрано марку с id=2
$('#model').removeAttr('disabled');
//добавить код выбора моделей
$('#model').html('<option value="0">Выберите модель</option><option value="1">Accent</option>');

$('#kom').hide();
//если выбрано модель
$('#model').change(function(){
var vModel = $('#model option:selected').val();
if(vModel == 0) {
$('#result').html('Ничего не выбрано');
} else if (vModel == 1){
//добавить код выбора комплектации

$('#forKom').html('<select id="kom" style="width:200px;"><option value="0">Выберите комплектацию</option><option value="1">Classic</option><option value="2">Comfort</option><option value="3">Family</option><option value="4">Style</option><option value="5">Style CP</option></select>');





} else {
$('#result').html('Error');
}
});




} else if (vMarka == 3) {//если выбрано марку с id=3
$('#model').removeAttr('disabled');
//добавить код выбора моделей
$('#model').html('<option value="0">Выберите модель</option><option value="1">Rio</option>');

$('#kom').hide();
//если выбрано модель
$('#model').change(function(){
var vModel = $('#model option:selected').val();
if(vModel == 0) {
$('#result').html('Ничего не выбрано');
} else if (vModel == 1){
//добавить код выбора комплектации

$('#forKom').html('<select id="kom" style="width:200px;"><option value="0">Выберите комплектацию</option><option value="1">Base</option><option value="2">Mid</option><option value="3">Mid plus</option><option value="4">Top</option></select>');


} else {
$('#result').html('Error');
}
});



} else {
$('#result').html('Не понятно');
}




});//конец проверки сменилась ли форма #marka


---------- Добавлено 09.03.2013 в 12:56 ----------

Chukcha:
А!!! ха-ха-ха



click накапливается..
надо его отбиндить, а пото прибиндить

Как это выполнить?

IL
На сайте с 20.04.2007
Offline
435
#10
burunduk:
установите vKom например в vKom=99999

Отработает внутри функции, только если выше по коду (до if(vKom) есть var vKom)

А вообще, Chukcha, прав..

psics, после установки vKom нужно unbind-ить старые (

$('.submit').unbind('click');
).. и "прибиндить" (это делается) новые..

p.s. хотя, вообще-то более правильно формировать строку

                                       data: "knum=8&mnum=1&modnum=1", 
в зависимости от текущего значения vKom
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий