传递jQuery $ .post变量作为参数的问题

时间:2009-10-16 23:09:41

标签: jquery ajax parameters .post

我正在尝试使用jQuery中的$ .post对象向php脚本发送一个名称:值对,其中name和value都是变量。我已经将变量发送到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);
        }
        });
        }
        });
});

因此,发送的标题是文字字符串类型,无论评估为什么。有人有什么想法吗?

3 个答案:

答案 0 :(得分:8)

因为语法{}采用一组名称:值,其中名称成为对象的属性。正如您所见,这是一个文字,不能是变量。使用此:

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

并传递params而不是{type:value}

答案 1 :(得分:0)

我不确定你的问题是什么,对我来说不太清楚。我对PHP也不太了解,但你可能想尝试这样:

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

$ .post('checkemail.php5',数据,功能(数据){.......

非常好,

答案 2 :(得分:0)

正是我在寻找黑暗猎鹰,谢谢!

很难找到这个解决方案,BTW。我假设大多数人只是序列化表单数据并将其作为post param发送,但在某些情况下,使用variable-name =&gt;是很好的。变量值配对,这让我感到疯狂,因为当我使用名称作为变量时我没有尝试过任何工作