1

我想将我的数据发布到 login.php 页面。但问题$.post()不起作用。告诉我这段代码的错误。

/includes/login.page(这是一个灯箱)

<form id="forgot-username-form" method="post" >
                    <label id="email">Forgotten your username ?</label>
                    <input type="email" name="forgot_username" id="user-email" />
                    <input type="submit" name="forgot_username" value="Send"/>
                </form>

/script/username.js

$(document).ready(function(){
$("#forgot-username-form").submit(function() {
    var email = $("#user-email").val();     
    alert(email);

    $.post("login.php",{email:email},function(result){
            alert(result);
    });     

});
});

/login.php

if(isset($_POST['email'])){
    $email = $_POST['email'];
    echo $email;
}

帮我找出这段代码的错误。

4

5 回答 5

1
$(document).ready(function(){
    $("#forgot-username-form").submit(function(e) { //<--note the "e" argument
        e.preventDefault(); //<--you forgot this
        var email = $("#user-email").val();     
        alert(email);

        $.post("login.php",{email:email},function(result){
           alert(result);
        });     
        return false; //<--or you can use this
    });
});

并捕获$_POST

if(isset($_POST['email'])):
    $email = $_POST['email'];
    echo $email;
endif;
于 2013-08-27T04:35:53.750 回答
1

尝试这个,

if(isset($_POST['email'])){
    $email = $_POST['email'];
    echo $email;
}

如果您想使用$_GET方法,请尝试使用,

脚本

$.get("login.php",{email:email},function(result){
        alert(result);
}); 

PHP 页面 login.php

if(isset($_GET['email'])){
    $email = $_GET['email'];
    echo $email;
}
于 2013-08-27T04:36:35.533 回答
0

您需要尝试使用POST因为您使用的是$.POSTnot$.GET

if(isset($_POST['email'])){
    $email = $_POST['email'];
    echo $email;
}

而且您还需要防止提交操作,例如

$(document).ready(function(){
    $("#forgot-username-form").submit(function(e) {
        e.preventDefault();     // Prevent Here
        var email = $("#user-email").val();     
        alert(email);

        $.post("login.php",{email:email},function(result){
            alert(result);
        });
        return false;     
    });
});
于 2013-08-27T04:35:24.277 回答
0

你做的正确,只有你需要做的改变是在你的脚本中

$(document).ready(function(){
 $("#forgot-username-form").submit(function(e) {
  e.preventDefault()
  var email = $("#user-email").val();     
  alert(email);

  $.post("login.php",{email:email},function(result){
         alert(result);
  });     

 });
});

在提交函数中为事件添加参数 e 并通过 e.preventDefault 函数阻止其默认行为。

于 2013-08-27T04:48:42.733 回答
0

试试这种方式:

$.post("login.php",{'email':email},function(result){
        alert(result);
}); 

已更改:我刚刚引用了您的发布数据对象的键
通过将电子邮件值分配给您的帖子数据对象,您做错了。

于 2013-08-27T04:51:12.123 回答