Проблемы прохождение jQuery $ .post переменной в качестве параметра

StackOverflow https://stackoverflow.com/questions/1580840

  •  21-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь отправить имя: пара значений в сценарий PHP, используя объект $ .post в jQuery, где и имя, и значение являются переменными. Я отправил переменные в консоль в FF, поэтому я знаю, что они устанавливаются правильно, но когда я рассматриваю отправляемые заголовки, правильно оценивается только переменная значения, имя отправляется в виде буквальной строки переменной имя. Вот функция в его полностью:

$(document).ready(function() {
  $('#formS form fieldset > input').blur(function() {
    if($(this).val()=='' && $(this).prev().is('img')) {
     $(this).prev().remove();
     return;
    }

    if((($(this).is('#formS form fieldset > input[id*=mail]')) ||
    ($(this).is('#formS form fieldset > input[id*=sername]'))) &&
    ($(this).val()!="")) {
      var email_field = $(this);
      if(!$(this).prev().is('img')){
      $('<img src="" alt="" style="width: 16px; height: 16px;" />').insertBefore(this);
      }
      var type = ($(this).is('input[id*=sername]'))?'username':'email';
      var value = $(this).val();
      $.post('checkemail.php5', {type:value}, function(data) {
                if(data == "free") {
         email_field.prev().attr('src','/images/greentick.png').attr('alt','available');
        } else if(data == "taken") {
         email_field.prev().attr('src','/images/redcross.png').attr('alt','taken');
        } else {
          console.log('hmmm'+data);
        }
        });
        }
        });
});

Итак, отправляемые заголовки - буквальная струна тип, и что угодно ценность оценивает. У кого -нибудь есть идеи, почему?

Это было полезно?

Решение

Потому что синтаксис {} принимает набор имени: значение, где имена становятся свойством на объекте. Это буквально и не может быть переменной, как вы видите. Использовать это:

var params = {};
params[type] = value;

и пройти параметры вместо {type: value}

Другие советы

Я не уверен в том, в чем ваша проблема, мне это не так ясно. Я также не знал в PHP, но вы можете попробовать это так:

var type = ($ (this) .is ('input [id*= sername]'))? 'username': 'email'; var value = $ (this) .val (); var data = type+"="+value;

$ .post ('checkemail.php5', data, function (data) {.......

Самый лучший,

Точно то, что я искал Темного Сокола, спасибо!

Было трудно найти это решение, кстати. Я предполагаю, что большинство людей просто сериализуют данные формы и отправляют их в качестве параметра Post, но в некоторых случаях приятно использовать Variable-name => сопряжение с переменной стоимость Переменная работала

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top