【发布时间】:2015-03-20 14:01:25
【问题描述】:
我正在为我的大学学位创建一个使用 html5、ajax、JSON 和 php 的手机应用程序。此应用程序必须与 mysql 数据库通信,因此使用 ajax Json 与 php 文件通信,然后处理对数据库的查询。然后将使用 phonegap 云服务对其进行打包。
登录页面使用表单获取用户名和密码,jQuery 和 JSON 然后通过登录页面上的脚本将其传递给 login.php。我可以在一定程度上获得 jQueryworking,但是一旦我对 php 文件执行 SQL 查询,登录似乎就会挂起。我已经通过手动将输入变量放入 php 并在运行良好的浏览器中运行页面来多次测试 php 进程。您可以在mobile app login 看到登录信息。
我目前正在使用 $.getJSON 从输入表单发送变量,但更喜欢使用帖子,但无法完全弄清楚。也不同于使用表单操作帖子,然后我可以使用回显来确保 php 正在完成其工作,由于使用 jquery/JSON,我无法找到如何允许我使用类似的方式来检查我的 php 进程,任何指导将不胜感激.
以下是我的脚本,我已经尝试让它工作 3 天了,即使我在许多论坛上尝试了许多不同的脚本,似乎也无法让它工作,任何帮助都会很大赞赏
jquery/JSON 脚本************************
$(document).ready(function() {
$("#submit").click(function() {
if($("#childs_name").val()=="" || $("#password").val()=="") {
$("#add_err").html("Please enter childsname and password");
return false;
}else{
$("#add_err").html('<img src="images/ajax-loader.gif" width="16" height="16" alt=""/>');
var childsname=$("#childs_name").val();
var password=$("#password").val();
$.getJSON("includes/login.php",{username:childsname,password:password},function(json) {
//Parse JSON data if json.response.error = 1 then login successfull
if(json.response.error == "1")
{
$("#add_err").html( "Welcome "+childsname+"");
//login successfull, write code to Show next page here
window.location= "menu.html";
}else
if(json.response.error == "2")
{
$("#add_err").html( "Details do not exsist in Database. Please contact the School");
}
});//get json
}
});//submit click
});//doc ready
PHP **************************************
//include_once 'db_connect.php';
if(!isset($_GET['submit'])) {
//check if childsname is empty
if(empty($_GET['childsname'])) {
echo '{"responce":{"error": "1"}}';
}else{
$childs_name = $_GET['childsname'];
echo '{"responce":{"error": "0"}}';
}//end of chidsname
//check if password is empty
if(empty($_GET['password'])) {
echo '{"responce":{"error": "1"}}';
}else{
$password = $_GET['password'];
echo '{"responce":{"error": "0"}}';
}//end of password
//query database
$query = "SELECT * FROM app Where child_name = '$childs_name'";
$results = mysqli_query($mysqli, $query);
// Loop through results
// if($result->num_rows >= 1){
// $row = $result->fetch_array(MYSQLI_ASSOC);
// if ($row['childs_name'] = '$childs_name'){
//
while ($row = mysqli_fetch_array($results, MYSQLI_BOTH)){
if($_GET['childsname'] == $row['child_name']) {
echo '{"responce":{"error": "1"}}';
// header("Location: ../menu.html");
}else{
echo '{"responce":{"error": "2"}}';
}
}
//**************************************************************submit
echo '{"response":{"error": "1"}}';
}
else
{
echo '{"response":{"error": "0"}}';
}
我的表单 HTML *******************************
<body class="body">
<div id="logo"></div>
<div class="loginForm">
<form id="login" name="login" method="post" action="includes/login.php">
<input name="childs_name" type="text" id="childs_name" form="login" placeholder="Childs Name">
<input name="password" type="password" id="password" form="login" placeholder="Password">
<input name="submit" class="submit" type="button" id="submit" formaction=""value="Submit">
<input name="reset" type="reset" id="reset" form="login" value="Reset">
<div id ="add_err" class="add_err"></div>
</form>
</div>
<div class="l-a"></div>
<div class="tagLine">Little minds with big ideas</div>
</body><!--body-->
</html>
jQuery 和 JSON 对我来说是新的,所以我希望我的代码是可疑的,我遗漏了一些简单的东西,我也希望我已经提供了足够的信息来提供帮助,以防万一有人认为我放了太多代码然后我只想提供我认为需要的尽可能多的信息
【问题讨论】:
-
也许您不应该将
include_once 'db_connect.php';注释掉? -
Dallin >我这样做是为了测试一些东西,但忘了取消注释,请指出,现在可能是代码失明的情况,lol
标签: javascript php jquery ajax json