【问题标题】:Passing information using AJAX post使用 AJAX post 传递信息
【发布时间】:2014-02-16 03:50:59
【问题描述】:

我有一个模块列表,可以从数据库中检索所有可用的模块。列出的每个模块都包含一个“订阅”按钮。当用户在未登录的情况下单击按钮时,将显示一个登录弹出窗口,要求他/她在订阅模块之前登录。

我需要在这里实现的是将用户的输入发送到服务器,验证用户并让他登录。但是我遇到了一个问题,用户输入 没有传递给在服务器中正确的 php 文件。

module.php:

    <div id="login-form" title="Sign In"> 
                        <p class="validateTips">Please sign in to continue.</p>
                        <form>
                        <fieldset>
                            <label for="username">Username</label>
                            <input type="text" name="username" id="username" class="text ui-widget-content ui-corner-all" />
                            <label for="password">Password</label>
                            <input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
                            <button id="login-button">Login</button>
                        </fieldset>
                        </form>
    </div>

module.js:

$(document).ready(function () {

$("#login-button").click(function() {   
        var post_username = $("#username").val();
        var post_password = $("#password").val();
        $.post("validate.php", {
            username: post_username, 
            password: post_password
        });     
    });


    $("#login-form").dialog({
        autoOpen: false,
        height: 300,
        width: 350,
        modal: true,
        buttons: {

            Cancel: function() {
                $(this).dialog( "close" );
            }
        },
        close: function() {
                $(this).dialog( "close" );
        }   
    });


    $(".subscribe").click(function() {  
        $("#login-form").dialog("open");
    });
});

validate.php:

  $username = $_REQUEST["username"];
  $password = $_REQUEST["password"];

  // php verification code goes here…

现在的问题是用户输入没有传递给 validate.php。相反,输入附加在 module.php 的末尾。我猜这个问题是由于 AJAX 帖子造成的,但不幸的是我仍然无法弄清楚。任何人都可以在这里发光吗?

【问题讨论】:

    标签: javascript php jquery ajax post


    【解决方案1】:

    如果您希望 AJAX 请求转到 validate.php,那么这就是您必须在 $.post 调用中使用的 url

    $.post("validate.php", {
        username: post_username, 
        password: post_password
    });
    

    修改后...

    在您的 PHP 文件中,值不会在 $_REQUEST 中,而是在 $_POST 数组中。例如:

    $_POST['username']
    

    【讨论】:

    • 对不起,我在我的问题中犯了一个错误。我确实指定了正确的文件名,但输入仍然在同一页面上传递,即 module.php。
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多