Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
表单数据通过Ajax获取并发布到PHP脚本以输入到DB中_Php_Ajax_Forms_Post - Fatal编程技术网

表单数据通过Ajax获取并发布到PHP脚本以输入到DB中

表单数据通过Ajax获取并发布到PHP脚本以输入到DB中,php,ajax,forms,post,Php,Ajax,Forms,Post,这可能很简单,但我真的有点不知所措。基本上,我有一个表单,只有一个输入:电子邮件和一个提交按钮。这不是我做的,所以我对它了解很少。我试图查找.ajaxjquery命令,但仍然没有意义 基本上,这里是我在index.php上的内容 JS和HTML: <!-- Subscription --> <script> $(function() { $('form input.submit').click(function (event) {

这可能很简单,但我真的有点不知所措。基本上,我有一个表单,只有一个输入:电子邮件和一个提交按钮。这不是我做的,所以我对它了解很少。我试图查找.ajaxjquery命令,但仍然没有意义

基本上,这里是我在index.php上的内容

JS和HTML:

<!-- Subscription -->
<script>        
    $(function() {
        $('form input.submit').click(function (event) {
            event.preventDefault();
            event.returnValue = false;
            $.ajax({
                type: 'POST',
                url: 'subscribe.php',
                data: {email: $('form input[type=email]').val()},
                success: function(data) {
                    if (data == 'successful') {
                        $('#subscribe_status').html('Thanks for subscribing! We will let you know.').slideDown();
                    } else if (data == 'already_subscribed') {
                        $('#subscribe_status').html('This email is already subscribed.').slideDown();
                    } else if (data == 'invalid_email') {
                        $('#subscribe_status').html('This email is invalid.').slideDown();
                    } else {
                        $('#subscribe_status').html('Something went wrong. Please try again.').slideDown(); 
                    }
                },
                error: function () {
                    $('#subscribe_status').html('Subscription is not available.').slideDown();
                }
            });
        });
    });
</script>   
<form action="#">
    <input type="email" value="Your e-mail address..." onfocus="value=''" />
    <input type="submit" class="submit" value="Notify me" />
</form>

基本上,我只是不断得到“出错,请再试一次。”

Subscribe.php
不返回任何内容,因此JS中的
数据总是emtpy,因此总是执行最后一个命令。

在Subscribe.php中写下:“var_dump($\u POST);”并查看成功函数中的结果,
数据
参数将是您的PHP文件所显示的任何内容。因此,如果您在成功的数据输入上没有任何回音(看起来可能正在发生),那么JavaScript会认为出了问题。你能确认数据确实被输入数据库吗?不,数据没有进入数据库。我应该让“回声”成功吗作为我的php的最后一行?编辑:这不起作用。然后下一步就是为
$ip
假设一些伪值,并手动执行SQL查询。当您这样做时,会收到什么错误消息?您应该真正附加一个调试器并查看您得到的响应。在Chrome中运行它并点击F12。转到“网络”选项卡,查看服务器告诉您的信息。(旁注:我希望这只是测试/示例代码,因为它容易受到…很多攻击。)
include 'go.php';
$email = $_POST['email'];
$ip=$_SERVER['REMOTE_ADDR'];
$timestamp = date("m/d/y H:i A");

mysql_query("INSERT INTO subscribers (ip, email, timestamp) VALUES (INET_ATON('$ip'), '$email', '$timestamp') ") or die(mysql_error());