我会尽量做到描述性。对不起,如果它太多了。
我有一个 HTML 文件,带有一个简单的登录表单,链接 jquery 和我的个人脚本:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Login</title>
<script src="js/jquery-1.8.1.min.js"></script>
<script src="js/50load-json.js"></script>
</head>
<body>
<h1>Login Form</h1>
<form id="myform">
Username<br> <input type="text" name="username" id="username"><p>
<!--Password <input type="password" name="password"> -->
Password<br> <input type="text" name="password" id="password"><p>
<input type= 'submit' value='Login' id="submitLogin">
</form>
<div id="output"></div>
</body>
</html>
从我的脚本(50load-json.js)中,我调用了一个 PHP,它连接到我的数据库并执行查询以匹配用户名和密码。
我的js文件的代码如下:
$(document).ready(function(){
$("#myform").submit( function () {
var output = $('#output');
var my_post_data = "username=bloc&password=party";//These Parameters should evaluate as TRUE in the PHP
$.post("loginthisPOST.php", my_post_data)
.done(function(data) { alert("Data Loaded: " + data);})
.fail(function(data) { alert("error: " + data); });
});
});
我的“loginthisPOST.php”看起来像这样:
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Allow-Headers: X-Requested-With');
$u = strip_tags($_POST['username']);
$p = strip_tags($_POST['password']);
$con = mysql_connect("database","username","password");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db ("phpmy1_bumblast_com");
$sorgu="SELECT * from users WHERE username ='$u' AND password ='$p' ";
$ssql_select = mysql_query($sorgu)or die(mysql_error());
if(mysql_num_rows($ssql_select)>0)
{
echo 'true';
}else{
echo 'false';
}
mysql_close($con);
?>
显然,我的计划是使这个“动态”(将var values = $(this).serialize();
代码添加到我的“js”文件,然后将这些参数作为“my_post_data”传递),但我什至无法使用静态数据成功调用 PHP。它总是执行“失败”功能。更具体地说,它给了我这些消息“错误:[object Object]”。
我上传了我的测试站点,以防我无法通过 MAMP 发出这种请求,但它也失败了。
我的“测试”页面发布在这里:
http://www.capitalbecarios.org/phonegap_tests/50login.html
此外,我还有一个“loginthisGET.php”用于测试目的(传递实际正确的用户名和密码,因此评估为“TRUE”):
http://www.capitalbecarios.org/phonegap_tests/js/loginthisGET.php?username=bloc&password=party
“50load-json.js”和“loginthisPOST.php”都位于“50login.html”所在的“js”文件夹中。
另外,为什么如果我这样做$("#output").html('there is error while submit 1');
会显示它,然后又很快将其删除,因为它会刷新页面?
你能帮助这个无知的灵魂获得启蒙吗?
感谢您对本说明的关注。