2013-12-23 3 views
1

Я пытаюсь изменить значение переменной на клик, чтобы я мог отправить значение через ajax для загрузки данных в восходящем или нисходящем формате.Изменение значения переменной onclick

Это часть Javascript на верхней части страницы.

var ascending = '0'; 

Часть HTML.

<span onclick="knowFormat(true)"><input type="checkbox" id="ascending" name="ascending"><label for="ascending"><i class="fa fa-sort-alpha-asc"></i>&nbsp;Ascending</label></span> 

<span onclick="knowFormat(false)"><input type="checkbox" id="descending" name="ascending"><label for="descending"><i class="fa fa-sort-alpha-desc"></i>&nbsp;Descending</label></span> 

<span><input type="button" name="sort" onclick="sorting()"></span> 

Вот мой CSS:

input { display:none; } 
input:checked ~ label { color:red; } 

Вот мой Javascript непосредственно перед Ajax функции и после того, как HTML, CSS часть:

function knowFormat(ascending) { 
    if (ascending) { ascending = '0'; } else { ascending = '1'; } 
} 

И в моем Ajax, данные всегда получать отправлено «0», даже после нажатия.

function sorting() { 
alert(ascending); 
    jQuery.ajax({ 
     url : 'ajax/file.php', 
     type : 'POST', 
     data : 'ascending='+ascending, 
     success : function(s) { 
      alert(s); 
     } 
    }); 
} 

Даже после нажатия sorting, кнопка alert всегда 0.

ответ

2

Вы меняете parameter из-за объема. То же имя параметра скрывает переменную global. Чтобы изменить глобальную переменную, измените имя параметра или глобальной переменной.

function knowFormat(ascending1) { 
    if (ascending1) { ascending = '0'; } else { ascending = '1'; } 
} 
+0

даже после нажатия, значение возрастания не изменяется. –

+0

Вы отлаживали код, чтобы проверить, что вы получаете в параметре ascending1? – Adil

+0

Получил это от вашего кода. Спасибо –

Смежные вопросы