Я постараюсь быть максимально наглядным. Извините, если это слишком много.jQuery.ajax() для PHP всегда входит в функцию request.fail
У меня есть файл 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);
?>
Мой план, чтобы сделать это "динамический", очевидно, (добавив в мой файл «js» код var values = $(this).serialize();
, а затем передав эти параметры как «my_post_data»), но я не могу даже вызвать PHP успешно со статическими данными. Он всегда выполняет функцию «fail». Чтобы быть более конкретным, это дает мне сообщение «error: [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" оба расположены в "JS" папку, в которой "50login.html" есть.
Также, если я делаю $("#output").html('there is error while submit 1');
, он отображает его, но затем удаляет его довольно быстро, потому что он обновляет страницу ?.
Не могли бы вы помочь этой неосведомленной душе достичь просветления?
Благодарим вас за внимание к этой заметке.
Обновленный ответ :) – Bigood
Обновлен вопрос, следующий за предложениями. Проблема по-прежнему сохраняется. – hugojl