0

我有“创建用户”表单,它必须检查用户名是否已经存在。为此,我在启动此脚本的按钮上创建了一个 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 页面检查用户名是否存在的结果。

4

3 回答 3

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

然后你可以$_POST['keyName']在你的PHP中访问。

于 2013-02-27T16:35:27.363 回答
2

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

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

这样,username将创建 POST 值。

于 2013-02-27T16:34:28.863 回答
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)。我还删除了数据类型,因为如果您正确设置标题,则不需要这样做test.php

header('Content-type: application/json');
于 2013-02-27T16:35:02.797 回答