如果我执行以下代码,那么我启用了Firebug。在提交表单时的Firebug中,在控制台中,"发布到login_submit.php"显示为红色。我也没有得到任何回应。
<!DOCTYPE html>
<html>
<head>
<title>Login page</title>
<script type="text/javascript" src="js/jquery.min.js">
</script>
<script type="text/javascript" src="js/scripts.js">
</script>
<script type='text/javascript'>
function submit_login_form()
{
var action = "login_submit.php";
$.ajax(
{
url: 'login_submit.php',
type: 'POST',
data: $('#login').serialize(),
success: function(data_in)
{
alert(data_in);
if (data_in !== null && !isEmpty(data_in) && (data_in).indexOf('VALIDATION_ERROR') !== -1)
{
var value = data_in.substr(data_in.indexOf('VALIDATION_ERROR'), data_in.indexOf('|#END#'));
var array_str = value.split('|');
var id_val = "#id_" + array_str[1].trim();
show_error(id_val, array_str[2]);
} else
{
window.location.replace('jb_organization_regn_confirm.html');
}
}
}
);
return false;
}
</script>
</head>
<body>
<form action="login_submit.php" id="login">
<h1>LOGIN</h1>
Email<input value="" name="user_email" id="user_login"><br>
Password<input value="" name="pwd" type="password" id="pwd_login"><br>
<input type="checkbox" name="remember_me">Stay Signed In<br>
<input type="submit" value="login" onclick="submit_login_form()">
</form>
</body>
</html>
下面是我的login_submit.php
<?php require 'db.php'; ?>
<?php require 'shopping_user_class.php'; ?>
<?php
$error_op = " START ";
$obj_shopping_login = new user;
//$obj_shopping_login->shopping_user_name = "";
$obj_shopping_login->shopping_user_pwd = "";
$obj_shopping_login->shopping_user_email = "";
$obj_shopping_login->remember_me = "";
function Collect_all_form_variables() {
global $obj_shopping_login;
global $error_op;
try {
$obj_shopping_login->shopping_user_email = $_POST["user_email"];
$obj_shopping_login->shopping_user_pwd = $_POST["pwd"];
if (isset($_POST['remember_me']) &&
$_POST['remember_me'] == 'yes') {
$obj_shopping_login->remember_me = 'yes';
} else {
$obj_shopping_login->remember_me = 'no';
}
} catch (Exception $e) {
echo 'Error: ' . $e->getMessage();
$error_op = 'Collect_all_form_variables' . $error_op . $e->getMessage();
}
}
function check_useremail_and_password($current_user_email,$current_user_pwd) {
global $error_op;
try {
global $pdo;
$sth = $pdo->prepare("SELECT * from photostudio.user WHERE UPPER(email) = UPPER(:current_user_email) AND pwd=:current_user_pwd");
// Execute the query, replacing the placeholders with their true value
$sth->execute(array(
':current_user_email' => trim($current_user_email),
':current_user_pwd'=>current_user_pwd
));
if ($sth->rowCount() > 0) {
return true;
}
return false;
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
$error_op = 'check_useremail_and_password ' . $error_op . $e->getMessage();
}
return true;
}
function validate_form_stage1() {
//alert("please");
$required = array('user_email', 'pwd');
// Loop over field names, make sure each one exists and is not empty
$error = false;
foreach ($required as $field) {
if (empty($_POST[$field])) {
$error = true;
break;
}
}
if ($error) {
return "VALIDATION_ERROR|" . $field . "|Value is Required|#END#";
} else {
return "SUCCESS";
}
}
function process_request() {
global $obj_shopping_login;
global $error_op;
$all_values_are_present = validate_form_stage1();
if (substr($all_values_are_present, 0, 16) === "VALIDATION_ERROR") {
echo $all_values_are_present;
return false;
}
Collect_all_form_variables();
if (check_useremail_and_password() == true) {
echo "Success" . $error_op;
} else {
echo "Failed" . $error_op;
}
}
?>
添加var $ = jQuery
脚本的顶部,例如..
<script type='text/javascript'>
var $ = jQuery;
// your functions here...
</script>
或
$(document).ready(function() {
// your functions here...
});
推荐:
在关闭<body>
标签之前添加您的脚本,例如...
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Your Website</title>
</head>
<body>
<header>
</header>
<section>
</section>
<aside>
</aside>
<footer>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script>window.jQuery || document.write('your_local_here/jquery.js"><'/script>')</script>
<script src="custom.js"></script>
<script>
// or here
</script>
</body>
</html>
如果我不得不猜测,我会说这个文件在一个子文件夹中。
确保使用相对于域根目录的路径(而不是当前文件)包含脚本:
<script src="/js/jquery.min.js"></script>
<script src="/js/scripts.js"></script>
这将确保无论您在站点的哪个位置,都可以找到您的脚本。
你需要将代码包装成
$(function() {
// your code here...
});
这将确保您的代码与您正在访问的所有 DOM 元素都已经可用时按预期工作。至于jQuery本身,尝试将本地jQuery包含替换为
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
看看是否有帮助。如果是这样,则您的本地文件未正确包含 - 可能是错误的文件夹/子文件夹。
每当你看到一个$ is not defined
意味着jquery没有被加载。 添加这个:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
还要记住,此路径必须位于所有其他 jQuery 文件或脚本之上。
请检查您的jquery文件路径在"就绪事件"中编写脚本
$(document).ready(function(){
//Some javascript code
});
如果 jQuery 加载正确,原因可能在 $-definition 中。尝试以这种方式覆盖它:
jQuery(document).ready(function($){
//Now you can use $
});