我有一个模块列表,用于检索数据库中可用的所有模块。列出的每个模块都包含一个“订阅”按钮。当用户在没有首先登录的情况下单击按钮时,将显示一个登录弹出窗口,要求他/她在订阅模块之前登录。
我需要在这里实现的是将用户的输入发送到服务器,验证用户并将他登录。但是我遇到的问题是用户输入 没有传递给服务器中的正确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发布的,但不幸的是我仍然无法弄明白。任何人都可以在这里点灯吗?
答案 0 :(得分:0)
如果您希望AJAX请求转到validate.php
,那么您必须在$.post
电话中使用该网址
$.post("validate.php", {
username: post_username,
password: post_password
});
编辑后......
在PHP文件中,值不会出现在$_REQUEST
中,而是出现在$_POST
数组中。例如:
$_POST['username']