私は作ろうとしています -
- Android WEB アプリケーション
- フォンギャップあり
- JqueryMobile を使用したレイアウト
私がしていること -
- ID、名前、住所を入力として受け取る html フォーム
- 'このデータを ajax を使用してシリアライズします
- それからjsonオブジェクトを作成します
- 「connection.php」というファイルに送信する必要があります
- ここで、このデータはデータベース (MySql) に入れられます
その他の詳細 -
- 私のサーバーはlocalhostで、xamppを使用しています
- phpmyadmin を使用してデータベースとテーブルを作成済みです
問題 -
- json オブジェクトが作成される html ファイルが、localhost でホストされている php ファイルに接続しません。
ここに私の完全なhtmlファイルがあります:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<!-- Change this if you want to allow scaling -->
<meta name="viewport" content="width=default-width; user-scalable=no" />
<meta http-equiv="Content-type" content="text/html;charset=utf-8">
<title>Trial app</title>
<link rel="stylesheet" href="thestylesheet.css" type="text/css">
<script type="text/javascript" charset="utf-8" src="javascript1.js"></script>
<script type="text/javascript" charset="utf-8" src="javascript2.js"></script>
<script type="text/javascript" charset="utf-8" src="cordova-1.8.0.js"></script>
<script>
$(document).ready(function () {
$("#btn").click( function() {
alert('hello hello');
$.ajax({
url: "connection.php",
type: "POST",
data: {
id: $('#id').val(),
name: $('#name').val(),
Address: $('#Address').val()
},
datatype: "json",
success: function (status)
{
if (status.success == false)
{
alert("Failure!");
}
else
{
alert("Success!");
}
}
});
});
});
</script>
</head>
<body>
<div data-role="header">
<h1>Heading of the app</h1>
</div><!-- /header -->
<div data-role="content">
<form id="target" method="post">
<label for="id">
<input type="text" id="id" placeholder="ID">
</label>
<label for="name">
<input type="text" id="name" placeholder="Name">
</label>
<label for="Address">
<input type="text" id="Address" placeholder="Address">
</label>
<div id="btn" data-role="button" data-icon="star" data-theme="e">Add record</div>
<!--<input type="submit" value="Add record" data-icon="star" data-theme="e">
-->
</form>
</div>
</body>
</html>
そして、これが私のローカルホストによってホストされている「connection.php」です
<?php header('Content-type: application/json');
$server = "localhost";
$username = "root";
$password = "";
$database = "jqueryex";
$con = mysql_connect($server, $username, $password);
if($con) { echo "Connected to database!"; }
else { echo "Could not connect!"; }
//or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
/*
CREATE TABLE `sample` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`Address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`)
)
*/
$id= json_decode($_POST['id']);
$name = json_decode($_POST['name']);
$Address = json_decode($_POST['Address']);
$sql = "INSERT INTO sample (id, name, Address) ";
$sql .= "VALUES ($id, '$name', '$Address')";
if (!mysql_query($sql, $con)) {
die('Error: ' . mysql_error());
} else {
echo "Comment added";
}
mysql_close($con);
?>
私の疑問:
- phpmyadmin で表示すると、テーブル「サンプル」にエントリが作成されません
- 明らかに、成功メッセージも表示されません
- ajaxからでもphpファイルからでも、エラーは発生しません。
私が疑っているもの:
- json の代わりに jsonp を使用する必要がありますか? 私はこれが初めてです。
- 私のphpファイルに問題はありますか?
- おそらく、HTML ファイルにさらに JavaScript ファイルを含める必要がありますか?
これは非常に簡単な問題だと思いますので、助けてください!jquery、ajax、およびjsonを使い始めたばかりなので、概念的なエラーがあると思います。ありがとうございました。
いくつかの編集:
次の構文エラーが発生しました。
データベースに接続しました!
Notice : Undefined index: id in C:\xampp\htdocs\connection.php行28
Notice : Undefined index: name in C:\xampp\htdocs\connection.php行31
Notice : Undefined index: Address in C:\ xampp\htdocs\connection.php行34
エラー: SQL 構文にエラーがあります。1 行目の ' '', '')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
だから私は自分のコードを
if (isset($_POST['id']))
$id= json_decode($_POST['id']);
if (isset($_POST['name']))
$name = json_decode($_POST['name']);
if (isset($_POST['Address']))
$Address = json_decode($_POST['Address']);
それでも同じエラーが発生する
助けてください!