Jquery将单个变量发布到PHP

时间:2013-02-27 16:32:26

标签: php jquery json

我有“创建用户”表单,必须检查用户名是否已存在。为此,我在启动此脚本的按钮上创建了一个onclick函数:

$.ajax({
type: \"POST\",
dataType: \"json\",
url: \"test.php\",
data: $('input[name=Username]').val(),
contentType: \"application/json; charset=utf-8\",
success: function(data){
alert('Items added');
},
error: function(e){
console.log(e.message);
}
});

然而,没有任何事情发生,甚至没有发出成功的警报! 请帮我介绍如何发布单个变量以及如何从PHP页面检查结果是否存在用户名。

3 个答案:

答案 0 :(得分:2)

您的data密钥需要value这是一个对象,如下所示:

data: {username: $('input[name=Username]').val())},

这样,将创建POST值username

答案 1 :(得分:2)

  1. 不要逃避JS的随机位。摆脱\ s
  2. 如果使用标准格式mime类型格式化而不是仅发送单个原始字符串,则处理提交的数据要容易得多。 data: { keyName: $('input[name=Username]').val() }
  3. 您没有发送JSON文本。摆脱contentType: etc etc。 (离开它可能会导致PHP“这不是表单数据,我不能用它填充$_POST”。让jQuery确定它发送的内容类型。
  4. 然后您可以在PHP中访问$_POST['keyName']

答案 2 :(得分:1)

您需要将变量分配给可在$_POST调用中引用的项目:

$.ajax({
    type: "POST",
    url: "test.php",
    data: {user:$('input[name=Username]').val()},
    success: function(data){
        alert('Items added');
    },
    error: function(e){
        console.log(e.message);
    }
});

然后在test.php中,只需检索$_POST['user']

编辑 - 我删除了contentType(感谢Rocket)。我还删除了dataType,因为如果在test.php上正确设置标题,则不需要这样做:

header('Content-type: application/json');