私はこの問題を何時間も解決しようと真剣に取り組んできましたが、ここでたくさんの回答を読みましたが、うまくいきません.
単一の列を 0 (重要ではない) または 1 (重要) に設定することで、データベースで投稿を重要としてマークします。状態は、私のサイトのフォーム内のテキスト フォームをチェックする (またはチェックしない) ことによって判断する必要があります。これは、フォームを直接 php 処理スクリプトに送信すると問題なく機能しますが、フォームを jQuery で検証する場合は機能しません。この場合、何らかの理由で、チェックボックスがオンになっているかどうかに関係なく、常に投稿が重要であるとマークされます。
コードをチェックしてください:
形
<form method="POST" action="">
<fieldset>
<legend>Form Title</legend>
<label>Title *</label>
<input type="text" name="headline" placeholder="...">
<label>Contentn *</label>
<textarea rows="10" cols="40" name="content"></textarea>
<label class="checkbox">
<input type="checkbox" name="important" id="important" value="checked">
Important
</label><br>
<input type="submit" class="btn btn-success submit-post" value="Send">
</fieldset>
</form>
検証部分
$(document).ready ( function() {
$('.submit-post').click(function() {
// VALIDATION PART
var form = $(this).closest('form');
var headline = form.find('input[name=headline]');
var content = form.find('textarea[name=content]');
if( $('input[type=checkbox]:checked') ) {
var important = 1;
} else {
var important = 0;
}
var passed = true;
if (headline.val()=='') {
headline.addClass('highlight');
passed = false;
} else {
headline.removeClass('highlight');
}
if (content.val()=='') {
content.addClass('highlight');
form.find('.errorMessage').fadeIn();
passed = false;
} else {
content.removeClass('highlight');
}
if (!passed) {
return false;
}
//organize the data properly
var data = 'headline=' + headline.val() + '&content=' + content.val() + '&important=' + important.val();
//disabled all the text fields
form.find('.text').attr('disabled','true');
//show the loading sign
$('.loading').show();
//start the ajax
var request = $.ajax({
type: "POST",
url: "process.php",
// data: data,
cache: false,
success: function (html) {
if (html == "true") {
form.find('.sendMessage').attr('disabled','true');
form.find('.successMessage').fadeIn();
} else {
alert("There was an error with your entry. Please try again later while we fix it! :)");
}
},
error: function(jqXHR, textStatus, error) {
// Fail
alert("Form Error: " + error);
}
});
//cancel the submit button default behaviours
return false;
});
});
PHP
<?php
include 'functions.php';
// Check if form is submitted
if ( $_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['headline']) && !empty($_POST['content']) ) {
// Get job details
$title = ($_POST['headline']);
$content = ($_POST['content']);
$compensation = ($_POST['compensation']);
$category = ($_POST['category']);
// Check whether job was marked as 'important'
if ( isset($_POST['important']) ) {
$important = 1 ;
} else {
$important = 0;
}
// Get author details
$author_email = $_SESSION['email'];
$author_id = $conn->prepare("SELECT id FROM users WHERE email = ? ");
$author_id->bindParam(1, $author_email, PDO::PARAM_STR);
$author_id->execute();
$get_author_id = $author_id->fetch(PDO::FETCH_ASSOC);
$get_author_id = $get_author_id['id'];
// Here I add the information to the database
echo json_encode(true);
} else {
echo "Error: Error submitting data to database";
exit();
}
?>
誰が何が起こっているのか考えていますか? ありとあらゆる方法を試しましたが、うまくいきません!よろしくお願いします。
どうもありがとう!!!