странная проблема AJAX JQuery - PullRequest
       1

странная проблема AJAX JQuery

0 голосов
/ 27 декабря 2010

Привет, когда я отправляю данные следующим образом:

    var deln =  jQuery(this).val();
$.post("index.php", { del: "John", deln : "" });

это не работает, но если я ввожу переменную Deln вручную, как:

var deln =  jQuery(this).val();
$.post("index.php", { del: "John", 8 : "" });

это работает ...странный!!его единственные числа, которые возвращаются, если это помогает ....

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Это просто способ, которым литералы объектов работают в JavaScript, вы не можете использовать переменную для ключа, по крайней мере, с этим обозначением.

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

var obj = { del: "John" };
obj[$(this).val()] = "";
$.post("index.php", obj);

Поскольку вы пропускаете пустую строку, почему бы не перевернуть ее? Используйте известный ключ, например:

$.post("index.php", { del: "John", id: $(this).val() });
0 голосов
/ 27 декабря 2010

Для динамического задания свойства объекта невозможно использовать переменные в качестве имен свойств при использовании конструкции обозначения объекта ({} скобки).

Для динамического выполнения этого вы можете попробовать следующее:

var deln = jQuery(this).val();
var options = {}; // define object container

// now use object as an array
options["del"] = "John"; // this is same as: options.del = "John";
options[deln] = ""; // setting a property name by passing variable

// now simply pass in options object and thats it
$.post("index.php", options);

Поскольку объекты и массивы в javascript аналогично разделены (оба могут использовать [] скобки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...