繁体   English   中英

jQuery Ajax请求和PHP

[英]Jquery Ajax Request and PHP

Jquery的新手,甚至是Jquery Ajax调用的新手-这是我的问题:

我有一个小的表格-电子邮件地址提交-触发到一个PHP文件,该文件将电子邮件插入表格中。

我要执行以下操作:

  1. 通过Ajax处理表单提交,因此不会刷新
  2. 成功写入表格后,我想将“提交”按钮的文本更改为“成功!”。 3秒钟,然后返回带有淡入和淡出效果的“注册”。

这是我的表格代码:

<form action="" id="registerform" name="registerform" method="post" >
    <input type="text" id="email" name="email" value="Email Address" onClick="empty()" onBlur="determine()" />
    <button id="join" type="submit" name="join" onClick="validate()">Sign Up</button>
</form>

这是我通过Jquery处理POST请求的可怕尝试:

$('form').on('submit', function(e) {
    $.post('register.php', function() {
            $('#join').html('Success!')             
    });        
    //disable default action
    e.preventDefault();
});

谁能评论如何使Ajax请求工作(似乎没有)?

提前致谢!

更新资料

好了,下面的Jquery块将数据添加到表中,但是,我的按钮文本没有更改:

 $('form').on('submit', function(e) {
        $.post('register.php', $("#registerform").serialize(), function() {
            $('#join').html('Success!')             
        });        
    //disable default action
    e.preventDefault();
    });

现在有什么想法吗?

这是我的一个ajax调用示例

details = "sendEmail=true&" + $("form").serialise();

$.ajax({
    url: "yourphppage.php",
    type: "post",
    data: details,
    success: function (data, textStatus, jqXHR) {
        if (data == "false") {
            console.log("There is a problem on the server, please try again later");    
        } else {
                //Do something with what is returned
        }
    }
})          

在服务器端

if (isset($_POST['sendEmail'])) {
  //Do something with the data
}

当然,这只是一个示例,您可能需要更改此设置以适合您的需求:)

要注意的一件事是if (data == "false") 在服务器端,我可以echo "false"以告诉ajax调用不成功。

您实际上并没有向服务器发送任何数据。 您需要使用$.post的“数据”参数发送数据。

$('form').on('submit', function(e) {
    $.post('register.php', $(this).serialize(), function() {
        $('#join').html('Success!');             
    });        
    //disable default action
    e.preventDefault();
});

不确定,但是POST请求是否发送任何内容? 尝试在POST请求中添加数据。

$('form#registerform').submit(function() {
  var email = $(this).find('input[name=email]').val();
  $.post('register.php', {email: email}, function() {
    $('#join').html('Success!');             
  }); 

  return false;
});

您要在哪里将表单数据通过ajax调用推送到服务器? 将代码更改为此。

var data = {$("#email").val()};
$('form').submit(data ,function(e) {
    $.post('register.php', function() {
            $('#join').html('Success!')             
    });        
    //disable default action
    e.preventDefault();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM