javascriptなしでデータを追加できるプログラムがあります。しかし、AJAXを使いたいのですが、なぜ動作しないのか分かりません。私が[追加]ボタンをクリックすると、何も起きず、phpmyadminにデータが表示されません。誰でも助けてくれますか?Ajaxにデータが保存されていません
のindex.php:
session_start();
require_once("auth.php");
require_once("control.php");
<div class="well well-sm bs-component">
<div class="form-group row add">
<form method="post" action="">
<div class="col-md-12">
<label for="content" class="control-label">Your Comment</label>
<input type="hidden" name="uid" value="<?= $id; ?>">
<input type="hidden" name="date" value="<?= date('Y-m-d H:i:s') ?>">
<textarea id="content" name="content" class="form-control" rows="3" placeholder="Enter your comment..." required></textarea>
<p class="error text-center alert alert-danger hidden"></p>
</div>
<div class="addButton col-md-12">
<button class="btn" type="submit" id="add" name="add">
<span class="glyphicon glyphicon-plus"></span> SEND
</button>
</div>
</div>
</form>
</div>
control.php:
//ADD COMMENT
if (isset($_POST['add'])) {
$id = $_POST['uid'];
$date = $_POST['date'];
$content = $_POST['content'];
$sql= "INSERT INTO posts (uid, content, date) VALUES ('$id', '$content', '$date')";
if (!$mysqli->query($sql)) {
header("location: error.php");
}
}
Javascriptを:
$("#add").click(function() {
var formData = {
'name': $('#content').val()
};
$.ajax({
type: 'post',
url: 'control.php',
data: formData,
success: function(data) {
if ((data.errors)){
$('.error').removeClass('hidden');
$('.error').text(data.errors.name);
}
else {
$('.error').addClass('hidden');
$('#table').prepend("<div class='item" + data.id + " mess'><div class='btn-group-sm'><button class='edit-modal btn btn-circle' data-id=" + data.id + " data-name=" + data.name +"><span class='glyphicon glyphicon-pencil'></span></button><button class='delete-modal btn btn-circle' data-id=" + data.id + " data-name=" + data.name +"><span class='glyphicon glyphicon-trash'></span></button></div><article class='myMessage'><p>" + data.name + "</p></article></div><div class='clear' style='clear: both;''></div>");
}
},
});
$('#content').val('');
});
追加することですがあなたのコードにいくつかのデバッグメッセージを表示して、実際にあなたの日付が「失われた」場所やどこまでのものかを確認します。例えば。あなたの 'control.php'に' echo'メッセージを追加し、それが呼び出されているかどうかを確認してください。正しい値を確認してください。 – xander
あなたは '$ _POST ['add']'を送信していません。 PHPで出力するので、アプリケーションが停止する場所を知ることができます。また、クエリでエラー報告を使用して、なぜ失敗したのかを知って、クエリをパラメータ化する必要があります。 – chris85