Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery';s POST触发器“;“完成”;但没有提交任何数据_Javascript_Jquery_Ajax_Forms - Fatal编程技术网

Javascript jQuery';s POST触发器“;“完成”;但没有提交任何数据

Javascript jQuery';s POST触发器“;“完成”;但没有提交任何数据,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,我想用AJAX提交我的表单。我编写了一个通过按下按钮触发此功能: function putUser() { $('button#putUser').on('click', function() { var user = $('input#user').val(), amount = $('input#amount').val(), what = $('input#amount').val(), cou

我想用AJAX提交我的表单。我编写了一个通过按下按钮触发此功能:

function putUser() {
    $('button#putUser').on('click', function() {
        var user = $('input#user').val(),
            amount = $('input#amount').val(),
            what = $('input#amount').val(),
            country = $('input#country').val(),
            platform = $('input#platform').val(),
            formUrl = $('form#sendUser').attr('action');

        var data = {
            user: user,
            amount: amount,
            what: what,
            country: country,
            platform: platform
        }

        $.post(formUrl, $('#sendUser').serialize(), function() {
            alert('test');
        }).done(function() { alert('done')})

        return false;
    })
}
这在理论上是可行的,因为我正在得到
警报。但没有提交任何数据。发生了什么?我的SQL语句工作得很好

我的php代码:

if(isset($_POST['putUser'])) {
    $user = $_POST['user'];
    $amount = $_POST['amount'];
    $what = $_POST['what'];
    $country = $_POST['country'];
    $platform = $_POST['platform'];

    $query = mysql_query('INSERT INTO sells (id, user, amount, what, country, platform) '
        . 'VALUES (NULL , "' . mysql_real_escape_string($user) . '", "' . mysql_real_escape_string($amount) . '", "' . mysql_real_escape_string($what) . '", "' . mysql_real_escape_string($contry) . '", "' . mysql_real_escape_string($platform) . '")');

    if($query) {
        echo 'ok';
    } else {
        die(mysql_error());
    }
}

看起来你实际上并没有发送你想要提交的数据

请注意,
$('#sendUser').serialize()
已更改为您的
数据
对象。而且
putUser
已添加到
数据中,以便服务器端代码能够识别它

我想你想要这个:

function putUser() {
    $('button#putUser').on('click', function() {
        var user = $('input#user').val(),
            amount = $('input#amount').val(),
            what = $('input#amount').val(),
            country = $('input#country').val(),
            platform = $('input#platform').val(),
            formUrl = $('form#sendUser').attr('action');

        var data = {
            putUser: true,
            user: user,
            amount: amount,
            what: what,
            country: country,
            platform: platform
        }

        $.post(formUrl, data, function() {
            alert('test');
        }).done(function() { alert('done')})

        return false;
    })
}

看起来你实际上并没有发送你想要提交的数据

请注意,
$('#sendUser').serialize()
已更改为您的
数据
对象。而且
putUser
已添加到
数据中,以便服务器端代码能够识别它

我想你想要这个:

function putUser() {
    $('button#putUser').on('click', function() {
        var user = $('input#user').val(),
            amount = $('input#amount').val(),
            what = $('input#amount').val(),
            country = $('input#country').val(),
            platform = $('input#platform').val(),
            formUrl = $('form#sendUser').attr('action');

        var data = {
            putUser: true,
            user: user,
            amount: amount,
            what: what,
            country: country,
            platform: platform
        }

        $.post(formUrl, data, function() {
            alert('test');
        }).done(function() { alert('done')})

        return false;
    })
}
什么是
$('#sendUser')。serialize()
?那是你为自己制作的表格吗

编辑: 对于post-

什么是
$(“#sendUser”)。请尝试使用数据类型“json”。serialize()
?那是你为自己制作的表格吗

编辑
对于post-

尝试使用数据类型“json”,我会将putUser参数更改为get参数

<form action="sendUser.php?putUser">
js


还更改为提交事件而不是单击,这使我可以进一步使用
而不是选择器。

我将putUser参数更改为get参数

<form action="sendUser.php?putUser">
js


还更改为提交事件而不是单击,这使我可以进一步使用
而不是选择器。

它不起作用。我以前试过使用
$.post(formUrl,data…
),但不起作用。我以前尝试过使用
$.post(formUrl,data…
)。表单的序列化内容。您可能希望使用构建的数据对象来发布它。我尝试过了。我仍然不明白为什么要创建数据对象,以后再也不用它了。您可能需要添加“json”作为post请求的最后一个参数:$.post(formUrl,$(“#sendUser”).serialize(),function(){alert('test');},'json');另一方面,我建议使用“ajaxError”来跟踪并查看表单的ajax请求序列化内容是否有任何问题。您可能希望使用您构建的数据对象来发布它。我做到了。我仍然不明白为什么要创建数据对象,以后再也不用它了。您可能需要添加“json”作为post请求的最后一个参数:$.post(formUrl,$(“#sendUser”).serialize(),function(){alert('test');},'json');另一方面,我建议使用“ajaxError”来跟踪并查看ajax请求是否存在任何问题-您如何确认“没有提交数据”?我们可以查看您的服务器端代码吗?我的sql表中没有新的内容。这并不意味着没有提交任何数据。据我们所知,您的sql查询可能会失败,或者您可能会错误地访问post数据。您的javascript是正确的。当JS关闭时,数据将使用常规PHP和页面刷新提交。现在开始。当您使用
数据
发送时,您没有发送putUser post var,我猜jQeury没有序列化您的按钮值。您如何确认“没有提交数据”?我们可以查看您的服务器端代码吗?我的sql表中没有新的内容。这并不意味着没有提交任何数据。据我们所知,您的sql查询可能会失败,或者您可能会错误地访问post数据。您的javascript是正确的。当JS关闭时,数据将使用常规PHP和页面刷新提交。现在开始。当您使用
数据
发送时,您没有发送putUser post var,我猜jQeury没有序列化您的按钮值。