できるだけ説明的になるように努めます。多すぎたらごめんなさい。
jquery と個人用スクリプトをリンクする単純なログイン フォームを含む HTML ファイルがあります。
<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 を呼び出します。PHP は DB に接続し、クエリを実行してユーザー名とパスワードを照合します。
私の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を正常に呼び出すことさえできません。常に「失敗」機能を実行します。具体的には、「エラー: [オブジェクト オブジェクト]」というメッセージが表示されます。
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');
また、ページが更新されるため、表示されたのに非常に高速に削除されるのはなぜですか?
この無知な魂が悟りを開くのを手伝ってくれませんか?
このメモに注目していただきありがとうございます。