javascript - Ajax卡在beforeSend阶段,不向PHP发送数据

标签 javascript php jquery mysql ajax

我这里有一个问题 - 我对 PHP 非常熟悉,但是对于 jquery 和 ajax 来说是个新手,而且我有一个问题已经解决了一周了,所以我想知道是否你可以帮助我。 我有一个大表单,其中包含大约 25 个字段供用户填写,以便在我的网站上创建他们的个人资料页面。我正在使用 jquery 验证所有必填字段,并希望使用 Ajax 将数据发布到 PHP,然后 PHP 将其插入到数据库的表中。 问题是 Ajax 陷入“beforeSend”例程中,不会将字段的值发送到 PHP,也不会插入任何内容。我做错了什么?

这是我的代码:

(表单的 ID 为“creaform”,代码包含一堆验证代码,这些代码都有效且与问题无关,因此我将其省略)

    $(document).ready(function() {
$("#createbtn").click(function (e) {
var self = this;

$.ajax({

    type : "POST",
    url  : "profilereg.php", 
    data : $('#creaform').serialize(),
    beforeSend : function() {
    $(self).hide();
    $('#creastatus').html( "<img src='mysuperduperanimatedgif.gif'/>" );
    },
    success : function(html){
                var response = "Your data has been saved. You will now be taken to your profile page.
                $('#creastatus').html( response );

            }

            });
            }
            });
            });

这是接收 PHP 文件:

(请注意,这仍处于开发阶段 - 一旦它起作用,我将向 PHP 添加针对 SQL 注入(inject)的保护 - 首先希望它起作用)

include("db_conx.php");

$_uname = "TestUser";
$_fname = $_POST['fname'];
$_lname = $_POST['lname'];
$_email = $_POST['email'];
$_wmail = $_POST['wmail'];
$_gender = $_POST['gender'];
$_country = $_POST['country'];
$_dob = $_POST['datepicker'];
$_aboutme = $_POST['aboutme'];
$_genre1 = $_POST['genre1'];
$_genre2 = $_POST['genre2'];
$_genre3 = $_POST['genre3'];
$_style = $_POST['style'];

$today = date("d M Y, G:i");
$_lastvisit = $today;

$sql = "INSERT INTO `uuu`(`username`, `fname`, `lname`, 
`email`, `wriyonmail`, `gender`, `dob`, `country`, `genre1`, `genre2`, 
`genre3`, `style`, `lavis`, `aboutme`) VALUES ('$_uname', '$_fname', 
'$_lname', '$_email', '$_wmail', '$_gender', '$_dob', '$_country', 
'$_genre1', '$_genre2', '$_genre3', '$_style', '$_lastvisit', '$_aboutme')";

再说一遍,这有什么问题——它卡在了 gif 动画的 beforeSend 显示中。当我删除 beforeSend 时,它只是不执行任何操作。任何帮助将不胜感激:) 谢谢!

约翰

最佳答案

尝试改变

var response = "Your data has been saved. You will now be taken to your profile page.

var response = "Your data has been saved. You will now be taken to your profile page."

您似乎缺少右引号,这将导致脚本错误

关于javascript - Ajax卡在beforeSend阶段,不向PHP发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25285075/

相关文章:

javascript - Ajax 中的多个成功函数

php - 如何将 facebook 登录响应从 javascript 传递到 php 页面?

PHP 正则表达式 : split on unescaped delimiter

PHP 从回显输出中删除 <body><html>...</html></body>

php - 从 google chrome 网址中删除特殊字符

javascript - 具有依赖类型的 Typescript 联合

来自 Xaml 文件的 TextBlock 元素的 Javascript 数组

php - 为什么这不会插入表中?

javascript - JavaScript 中不需要的事件监听器的垃圾收集

javascript - 如何重用 HTML 用户界面元素?