我想一个名字发送:值对使用.post的$对象jQuery的其中两个名称和值变量的PHP脚本。我发出的变量在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;

和传递则params的代替{类型:值}

其他提示

我不知道你的问题是什么,它不是那么清晰。我没有太多的知识,PHP也,但你可能想尝试这样的:

变种型=($(本)。是( '输入[ID * = sername]')) '用户名': '电子邮件'; VAR值= $(本).VAL(); VAR数据类型= + “=” +值;

$。交( 'checkemail.php5',数据,函数(数据){.......

非常最好,

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

是很难找到该溶液中,顺便说一句。我想大多数人也只是序列化表单数据和发送,作为后PARAM,但在某些情况下,它是很好的使用变量名称=>变量 - 值对,这是我逼疯如无我使用的名称为当试图变量是工作

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top