我在使用带有jquery的cakephp时遇到问题...
我的问题是我无法获取从jquery发布的值 php中的控制器...
我的控制器文件很简单,如下所示......
<?php
class UsersController extends AppController
{
var $name = "Users";
var $uses = null; //if no DB connection is reuired……….
function index()
{
}
function login()
{
print_r($this->params['form']);
echo "<br/>";
echo "<br/>";
echo "<br/>";
print_r($_REQUEST);
echo "<br/>";
echo "<br/>";
echo "<br/>";
print_r($_POST['username']);
echo "<br/>";
echo "<br/>";
echo "<br/>";
echo $_POST['data'];
echo "<br/>";
echo "<br/>";
echo "<br/>";
print_r($this->data);
echo "<br/>";
echo "<br/>";
echo "<br/>";
}
}
?>
===========================
- &GT;在这个控制器中做什么只是试图输出值 从jquery发布,但没有
他们似乎工作....
- &gt;我的登录视图文件在下面给出
<html>
<head>
<?=$html->css('general');?>
<?=$javascript->link('jquery'); ?>
<?=$javascript->link('jquery.form'); ?>
<?=$javascript->link('LoginValidation'); ?>
</head>
<body>
<h1 align="center"><u>Login Page</u></h1>
<form method="post" action="" id="customForm" name="customForm">
<table cellpadding="0" cellspacing="10">
<tr><td>User Name :</td><td><input id="username" name="username"
type="text" /></td><td><span id="usernameInfo"></span></td></tr>
<tr><td>Password :</td><td><input id="password" name="password"
type="password" /></td><td><span id="passwordInfo"></span>
</td></tr>
<tr><td colspan="2" align="right"><input id="submit" name="submit"
type="submit" value="Log In" /></td></tr>
</table>
</form>
</body>
</html>
=============================
- &gt;登录视图只是一个简单的使用纯PHP编码... i 没有使用任何助手, 对不起......但我很乐意使用它......
- &gt;最后我的javascript代码LoginValidation.js所在的视图 具体验证如下:
// JavaScript Document
$(document).ready(function(){
//global vars
var form = $("#customForm");
var username = $("#username");
var password = $("#password");
var usernameInfo = $("#usernameInfo");
var passwordInfo = $("#passwordInfo");
var site_url = "http://localhost/jeffery/cake_jquery/";
//http://localhost/jeffery/cake_jquery/users/login var str = $
("form").serialize();
//On blur
username.blur(validateUserName);
password.blur(validatePassword);
//On key press
username.keyup(validateUserName);
password.keyup(validatePassword);
//On Submitting
form.submit(function(){
if(validateUserName() & validatePassword() )
{
$.ajax({
type: "POST",
url: "http://localhost/jeffery/cake_jquery/users/login",
data: "username="+ username.val() + "password=" + password.val(),
success: function(){
form.hide();
$('div.success').fadeIn();
}
});
return false;
}
return false;
});
//validation functions
function validateUserName(){
//if it's NOT valid
if(username.val() == ""){
username.addClass("error");
usernameInfo.addClass("error");
usernameInfo.text("User Name is required !!!");
return false;
}
else
{
username.removeClass();
usernameInfo.removeClass();
usernameInfo.text("");
return true;
}
}
function validatePassword(){
//it's NOT valid
if(password.val() == ""){
password.addClass("error");
passwordInfo.addClass("error");
passwordInfo.text("Password is required !!!");
return false;
}
//it's valid
else
{
password.removeClass();
passwordInfo.removeClass();
passwordInfo.text("");
return true;
}
}
}); // end of $(document).ready(function()
============================================
=&GT;所以我打算在这里做的是使用登录表单,验证它和 通过ajax提交,以便页面不刷新......
=&gt;我只是想通过登录中的ajax查看提交的数据 控制器只是为了确保
控制器正在接收值...
=&GT;问题是我没有得到要查看的值。
答案 0 :(得分:0)
在你的ajax代码中有
data: "username="+ username.val() + "password=" + password.val()
你错过了'&amp;',应该是:
data: "username="+ username.val() + "&password=" + password.val()