私はjQuery.ajaxメソッドについて読んだことがあり、これが私が必要としているものであるはずだと信じていますが、これまでのところ、それを機能させることはできません。
「users」というテーブルを使用してテストmysqlデータベースを作成し、そのテーブルに「name」と「location」の行を追加してから、コマンドラインを使用してデータを保存できることを確認しました。次に、ボタンのあるテストページを作成し、このコピーをスクリプトファイルに追加しました($.ajaxの部分はjQueryAPIの例から直接取得されています)。
$('#button').click(function(){
saveData();
});
function saveData(){
$.ajax({
type: "POST",
url: "process.php",
data: { name: "John", location: "Boston" }
}).done(function( msg ) {
alert( "Data was saved: " + msg );
});
}
「データが保存されました」というアラートメッセージが表示されますが、実際にはデータベースに何も保存されていません。process.phpで何か間違ったことをしているに違いありませんが、何が起こっているのかわかりません。process.phpのコードは次のとおりです(ここに表示しないデータベース、db_host、userなどの変数を設定します):
// 1. Create a connection to the server.
$connection = mysql_connect($db_host, $db_user,$db_pwd);
// make sure a connection has been made
if (!$connection){
die("Database connection failed: " . mysql.error());
}
// 2. Select the database on the server
$db_select = mysql_select_db($database, $connection);
if (!$db_select){
die("Database selection failed: " . mysql.error());
}
// START FORM PROCESSING
if (isset($_POST['submit'])) { // Form has been submitted.
$name = trim(mysql_prep($_POST['name']));
$location = trim(mysql_prep($_POST['location']));
// INSERT THE DATA
$query = "INSERT INTO user ( name, location )
VALUES ( '{$name}','{$location}' )";
// Confirm if the query is successful.
$result = mysql_query($query, $connection);
}