次のような HTML ファイルがあります。
<script>
$(document).ready(function () {
$("#btn").click( function() {
var id = $('#id').val();
var name = $('#name').val();
var Address = $('#Address').val();
$.ajax({
url: "http://localhost/connection.php",
type: "POST",
data : { topost: JSON.stringify({id: id, name: name, Address: Address}) },
//I ASSUME HERE IM PASSING MY THREE FIELDS id, name and Address
//IN A STRING CALLED 'TOPOST' TO MY FILE CONNECTION.PHP
//WHICH IS HOSTED ON MY LOCALHOST, IM USING XAMPP.
datatype: "jsonp",
success: function (status) {
if (status.success == false) {
alert("Failure!");
}
else {
alert("Success!");
}
}
});
return false;
});
});
</script>
今、connection.php
自分のローカルホストでホストされているファイルで、これら 3 つのフィールドを読み込んで、3 つすべてをデータベース (MySQL) に入れることができるようにしようとしています。
ただし、エラーは次のとおりです。
Connected to database!<br />
<b>Notice</b>: Undefined index: topost in <b>C:\xampp\htdocs\connection.php</b> on line <b>27</b><br />
<br />
<b>Notice</b>: Undefined index: topost in <b>C:\xampp\htdocs\connection.php</b> on line <b>29</b><br />
私の質問は:
「topost」が定義されていないのはなぜですか? connection.php
「topost」という変数で、HTML ファイルから JSON データを送信していることを理解するにはどうすればよいですか?
そのため、次の PHP ファイルを確認して、エラーを提案してください。
サーバー側の PHP ファイル:
<?php
header('Content-type: application/json');
header('Access-Control-Allow-Origin: *');
$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);
$posteddata = $_POST['topost'];
$thedata= json_decode($_POST['topost']);
echo ($thedata);
mysql_close();
?>