入力フィールドのいずれかが空白の場合、mysql に挿入しないでください。一部の入力フィールドが空白である可能性があります (許容されます)。そのような場合、空白でないフィールド (値) を挿入する必要があります。しかし、スクリプトはまったく挿入されません。
私は次のようなものを書くことができます
if ( (strlen($date_day1) < 1) ) {
$date_day1 = 0;
}
しかし、より良い解決策かもしれませんか?入力フィールドが空の場合、他のすべてのフィールドを挿入します。空のフィールドは挿入できないか、0 を挿入できません。
入力
<input type="text" name="date_day1" id="date_day1"</td>
<input type="text" name="amount1" id="amount1"</td>
<input type="text" name="row_id1" id="row_id1"</td>
次に、ajaxは入力値を取得します
$(document).ready(function(){
autosave();
});
function autosave() {
var t = setTimeout("autosave()", 5000);
var date_day1 = $("#date_day1").val();
var amount1 = $("#amount1").val();
var row_id1 = $("#row_id1").val();
$.ajax( {
type: "POST",
url: "_autosave.php",
data: "date_day1=" + date_day1 + "&amount1=" + amount1+ "&row_id1=" + row_id1,
cache: false,
} );
}
次に、phpは変数を取得します
$date_day1 = $_POST['date_day1'];
$amount1 = $_POST['amount1'];
$row_id1 = $_POST['row_id1'];
そして、mysqlに記録してみてください
$stmt_insert = $db->prepare("INSERT INTO 2_1_journal(RecordDay, Amount, RowId) VALUES(:RecordDay,:Amount,:RowId)");
$stmt_insert->execute(array(':RecordDay' => $date_day1, ':Amount' => $amount1, ':RowId' => $row_id1,
));
アップデート
このように変更された ajax 挿入では機能しますが、これは機能しません
success: function(){ document.getElementById('is_row_changed1').value = 0;}
$(document).ready(function(){
autosave();
});
function autosave() {
var t = setTimeout("autosave()", 5000);
var date_day1 = $("#date_day1").val();
var amount1 = $("#amount1").val();
var row_id1 = $("#row_id1").val();
if ($("#is_row_changed1").val() > 0) {
$.ajax( {
type: "POST",
url: "_autosave.php",
dataType: "json",
data: {"date_day1" : date_day1, "amount1" : amount1, "row_id1" : row_id1},
cache: false,
success: function(){
document.getElementById('is_row_changed1').value = 0;
}
} );
}
}