onSubmit() 関数を使用して MySQL データベースに挿入しようとしています... 主要部分では、関数は機能します。ただし、フィールドがある1
DBに挿入し続けます(毎回1であってはなりません)。これが私の(関連する)htmlです:logbook_id
logbook_id
echo '<div class="logbook_box" id="logbook'.$id.'"
style="display: block; overflow: hidden;">';
echo '<form action="cgi-bin/read_log.php" method="post"
onSubmit="return ajaxSubmit(this, ' . $id . ');">' .
'<input type="hidden" value="'.$id.'" id="id" name="id" />'.
'<input style="float: right; width: 20%" type="submit" value="Mark as Read" />' .
'</form>';
onSubmit 関数は次のとおりです。
<script type="text/javascript" src="cgi-bin/jquery-2.0.3.js"></script>
<script>
var ajaxSubmit = function(form, id) {
div = document.getElementById("logbook" + id);
div.style.display = "none";
// fetch where we want to submit the form to
var url = $(form).attr('action');
var id = $('#id').val();
// setup the ajax request
$.ajax({
url: url,
data: { id : id },
dataType: "json",
success: function() {
if(rsp.success) {
alert('Marked as read, thanks!');
}
}
});
// return false so the form does not actually
// submit to the page
return false;
}
</script>
そして、ここに私のPHPファイルがあります:
<?php
include('/var/www/olin2/includes/functions.php');
$con = connect_db();
session_start();
$id = isset($_POST['id']);
$username = $_SESSION['username'];
$query = 'insert into read_logbook(logbook_id, username)
values("'.$id.'", "'.$username.'")';
mysqli_query($con, $query) or die(mysqli_error($con));
?>
そのため、[<div>
送信] をクリックすると、本来のように が消えます。これは、id
が正しく渡されていることを示しています。PHP スクリプトが呼び出されますが、データベースに何も入力されないか、(さらに奇妙なことに)フォームのメソッドを変更せずに PHP を から に変更すると、1
ユーザー名と値がデータベースに送信されます。$_POST
$_GET
私はajax/javascriptが初めてなので、関数と関係があると確信していますが、混乱して完全に途方に暮れています...何かアイデアはありますか?