2016-01-01 2 views
1

Я хочу проверить некоторые пользовательские входы с помощью if statement и в зависимости от них указать некоторые параметры для отправки в качестве запроса ajax.Отправлять параметры в зависимости от пользовательского ввода

Мой подход не работает вообще. Это только недопустимый код:

$.ajax({ 
    method : "GET", 
    url : "test.php", 
    data : 
     if (...) { 
      a: "abc", 
      b: "def" 
     }else{ 
      b: "ghi", 
      c: "jkl" 
     }, 
    success : function(data) { 
     console.log(data) 
    }, 
    error : function(data) { 
     console.log(data); 
    } 
}); 

У кого-нибудь есть идея?

ответ

5

Я думаю, что самый чистый способ разместить свое состояние перед вызовом запроса:

var data; 

if (...) { 
    data = {a: "abc",b: "def"}; 
}else{ 
    data = {b: "ghi",c: "jkl"}; 
} 

$.ajax({ 
    method : "GET", 
    url : "test.php", 
    data : data, 
    success : function(data) { 
     console.log(data) 
    }, 
    error : function(data) { 
     console.log(data); 
    } 
}); 

Надеется, что это помогает.

0

Вы можете использовать самостоятельно выполняя функцию, чтобы установить данные, как:

var i = true; 
$.ajax({ 
    method: "GET", 
    url: '/echo/js/', 
    data: (function() { 
    if (i) 
     return { a: "abc", b: "def" } 
    else 
     return { b: "ghi", c: "jkl" } 
    })(), 
    complete: function(response) { 
    console.log(response) 
    }, 
    error: function() { 
    console.log("Error") 
    }, 
});