表单提交PHP ajax

9 浏览
0 Comments

表单提交PHP ajax

我正在设置一个表单提交,但在将Ajax连接到PHP并将表单信息发送到所需的电子邮件地址时遇到一些问题。我不是这方面的专家,因为这是我第一次尝试使用AJAX提交表单信息。

对于出现的问题,我对任何建议都表示感谢。

提前感谢

此代码现在全部工作正常我已更新问题并附上了新代码。

表单:

    

联系表单


JQUERY/AJAX

$("form").submit(function(e)
{
    event.preventDefault();
    $.ajax(
    {
        'url' : $(this).attr('action'),
        'type' : "POST",
        'data' : $(this).serialize(),
        success:function(success)
        {alert("嘿")},
    });
});

PHP

   if(isset($_POST['name'], $_POST['email'], $_POST['telephone'], $_POST['message'])){
    $name = $_POST['name'];
    $email = $_POST['email'];
    $telephone = $_POST['telephone'];
    $message = $_POST['message'];
    $to  = "name@email.com";
    $subject = "来自$name通过网站的消息:";
    $txt = "这条消息来自网站:\n
    $message \n
    联系方式:\n 
    姓名:$name,电子邮件:$email,电话号码:$telephone";
    $header = "来自网站";
    mail($to,$subject,$txt,$headers);
}

0
0 Comments

问题的原因是在JQUERY代码中,使用了frm.serialize()将表单数据序列化,然后通过frm.children(':submit').attr('name')获取提交按钮的名称,并将它们拼接在一起作为请求的数据。但是在拼接过程中,没有使用正确的语法,导致拼接后的数据格式不正确。

解决方法是修改JQUERY代码,将data: frm.serialize()+'&'+frm.children(':submit').attr('name')改为data: frm.serialize()+'&'+frm.children(':submit').attr('name')+'=1',在拼接数据时,正确添加等号和数值1作为提交按钮的值。

以下是整理后的

在进行表单提交时,有时候会遇到Form submission PHP ajax问题,即通过AJAX技术将表单数据发送到服务器的PHP文件进行处理,但是无法正确提交数据的问题。下面是一个简单的解决方案。

首先,我们需要在HTML中设置一个表单和一些输入字段,如下所示:


然后,我们使用JQUERY来处理表单的提交事件,代码如下:

frm = $('#form');
frm.submit(function(e) {
    e.preventDefault();
    $.ajax({
        url: frm.attr('action'),
        type: frm.attr('method'),
        data: frm.serialize()+'&'+frm.children(':submit').attr('name')+'=1',
        success: function(res) {
            $('#message').html(res);
            frm.trigger("reset");
        }
    });
});

在这段代码中,我们使用frm.serialize()将表单数据序列化,并使用frm.children(':submit').attr('name')获取提交按钮的名称。然后,我们将它们拼接在一起作为请求的数据,但是在拼接过程中,我们需要使用正确的语法。所以,我们将data: frm.serialize()+'&'+frm.children(':submit').attr('name')修改为data: frm.serialize()+'&'+frm.children(':submit').attr('name')+'=1',以正确添加等号和数值1作为提交按钮的值。

最后,我们需要在服务器的PHP文件中处理表单数据,并将其存储到数据库中。以下是一个简单的PHP代码示例:


在这段代码中,我们首先导入数据库连接文件,然后检查是否有名为"addUser"的表单字段。如果有,我们将获取"firstname"和"lastname"的值,并将它们插入到数据库中。如果插入成功,我们将输出"Success",否则输出"Failed"。

通过以上的解决方案,我们可以解决Form submission PHP ajax问题,实现正确的表单提交和数据处理。

0
0 Comments

问题的原因是$_POST['submit']没有在序列化的表单数据中发送。解决方法是在AJAX函数中的变量中添加"&submit=submit",或者检查POST数组是否有数据并进行相应操作。另外,还要注意一些变量(如$subject和$headers)是否被设置,需要在代码中添加基本的错误检查。以下是整理好的文章:

在处理表单提交时,有时会遇到一个问题:$_POST['submit']在序列化的表单数据中没有被发送。解决这个问题的方法有两种。

第一种方法是检查POST数组是否有数据,如果不为空,则继续进行后续操作。可以使用以下代码实现:

if(!empty($_POST)) {
  // 如果POST数组不为空,继续执行操作
  // ...
}

第二种方法是在AJAX函数中的变量中添加"&submit=submit"。可以通过在序列化数据的变量后面加上"&submit=submit"来实现。具体代码如下:

'data' : $(this).serialize() + '&submit=submit',

此外,还需要注意一些变量是否被正确设置,比如$subject和$headers变量。如果这些变量没有被设置,可以在代码中添加一些基本的错误检查。可以在文件开头的

error_reporting(E_ALL); 
ini_set('display_errors', 1);

以上是关于解决Form submission PHP ajax问题的方法,希望对你有所帮助。如果这个答案对你有帮助,请点击旁边的复选标记来接受答案。

0