没有使用AJAX获取过帐的数据

空白EDjok

我希望能够通过将文本框数据发布到php来检查用户eamil是否在AJAX的“ blur()”上存在,我可以在使用Firebug时看到发布的数据,但我一直收到以下错误:未定义的索引:数据,我已经尽力了,但是还不能解决这个问题。这是javascript:

$(document).ready(function() {
$('#regEmail').blur(function() {
            var Email = $('#regEmail').val();
            var data = '{Email:' + Email + '}';
            $.ajax({
                type: "POST",
                url: "register.php",
                data: data,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    var result = response.exists;
                    if (result == true) {
                        alert('Email already exists!');
                        return;
                    }
                    else {
                        alert("Does not exist!");
                    }
                }
            });
        });
});

这是PHP代码:

if (isset($_POST['data']))
    {
        $db = new mysqli("localhost", "xxxx", "xxxxxxx", "xxxxxxx");

        $data = $_POST['data'];
        json_decode($data);

        $Email = $data->fetch_assoc();
        $Email = $Email["Email"];

        $sql = "SELECT COUNT(*) as isExisting FROM users WHERE user_email='$Email'"; 
        $sql_result = $db->query($sql);
        $result = $sql_result->fetch_assoc();

        if ($result["isExisting"] > 0)
        {
            $response = json_encode(array('exists' => true));
        } else {
            $response = json_encode(array('exists' => false));
        }

        echo $response;
        print json_encode($_POST);
    }

我添加了“ if(isset($ _ POST ['data']))”来检查是否已设置发布数据,但显然没有。

先生代码

$_POST用于键/值格式的URL编码数据。您正在发送原始JSON,这是不同的。使用当前的Javascript,您将需要使用$HTTP_RAW_POST_DATAPHP来获取JSON。

这样可以做到:

        var data = { Email : Email };
        $.ajax({
            type: "POST",
            url: "register.php",
            data: { data : JSON.stringify(data) },
            dataType: "json",
            success: function (response) {
                var result = response.exists;
                if (result == true) {
                    alert('Email already exists!');
                    return;
                }
                else {
                    alert("Does not exist!");
                }
            }
        });

变化:

  • data 变量到Javascript对象(不是JSON)
  • 以表单编码的POST数据形式发送,并带有一个输入(数据),该输入是data对象的JSON编码版本
  • 删除了JSON内容类型

在PHP方面,您的JSON将被解码为一个对象,因此请使用:

$data = $_POST['data'];
$email = json_decode($data);
$Email = $Email->Email;

您可以使用数组语法,但只有当你设置第二个论据json_decode()truejson_decode()如果不更新作为参数传递的变量,则必须捕获返回值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有使用KnockoutJS和Ajax填充下拉列表

来自分类Dev

没有使用AJAX发布值设置$ _POST

来自分类Dev

Grunt没有使用Ajax调用运行qunit测试

来自分类Dev

没有使用 mamp 获得 ajax 成功响应

来自分类Dev

没有使用“ wget -r”获取的文件

来自分类Dev

在React Native中没有使用Flatlist呈现数据

来自分类Dev

使用AJAX提交表单不会过帐到数据库

来自分类Dev

没有使用数据源选择数据库SQLException

来自分类Dev

没有使用PHP将数据插入MySQL数据库

来自分类Dev

我没有使用Scrapy获得所有产品描述数据

来自分类Dev

scons没有使用ParseConfig的PATH

来自分类Dev

JDK的ClassLoaderHelper没有使用

来自分类Dev

没有使用请求库的cookie

来自分类Dev

Vim没有使用Bash的别名

来自分类Dev

没有使用匕首单身

来自分类Dev

查询太慢,没有使用索引

来自分类Dev

ProgressDialog没有使用BroadcastReceiver关闭

来自分类Dev

JQPlot没有使用正确的日期

来自分类Dev

TableView没有使用正确的TableViewCell

来自分类Dev

Silex 没有使用正确的路线

来自分类Dev

Sekizai TemplateSyntaxError 没有使用 sekizai

来自分类Dev

Ubuntu分区可能没有使用

来自分类Dev

为什么jQuery.fler插件没有使用Ajax / PHP删除图像?

来自分类Dev

我没有使用angular-cli获取RouterOutletMap的提供程序:1.0.0-beta.10

来自分类Dev

当没有使用者时,获取消息以保留在RabbitMQ中

来自分类Dev

没有使用类实例获取变量名:Kotlin

来自分类Dev

没有使用赛普拉斯获取文本内容

来自分类Dev

Hibernate没有使用Spring Boot在PostgreSql中创建数据库

来自分类Dev

如果API没有使用Redux提供数据,如何显示25000毫秒的超时?

Related 相关文章

热门标签

归档