如果我單擊提交按鈕只使用PHP,數據記錄在MySQL中。使用ajax插入HTML輸入。代碼有問題
通過ajax _autosave.php只更新的作品。插入不起作用。要瘋了....無法理解
Ajax代碼在first.php
<script type="text/javascript">
$(document).ready(function() {
setInterval(function(){
var date_day1=$("#date_day1").val();
var amount1=$("#amount1").val();
DATA = 'date_day1=' + date_day1 + '&amount1=' + amount1;
$.ajax({
type: "POST",
url: "_autosave.php",
data: DATA,
cache: false,
/*success: function(){
$(".done").show().html("Saved as a draft!");
}*/
});
setTimeout(function(){
$(".done").hide();
}, 1000);// 15 seconds
}, 3000);// 1 minute
});
</script>
HTML輸入
<td><input type="text" name="date_day1" id="date_day1" value="<?php echo $_POST['date_day1']?>" size="1"></td>
<td><input type="text" name="amount1" id="amount1" value="<?php echo $_POST['amount1']?>" size="5"></td>
的PHP代碼部分是在first.php和_autosave.php相同
$date_day1 = $_POST['date_day1'];
$amount1 = $_POST['amount1'];
if ($stmt = mysqli_prepare($mysqli, "SELECT RecordDay FROM 2_1_journal WHERE RecordDay = ? ")) {
$stmt->bind_param('s', $date_day1);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($RecordDay);
$stmt->fetch();
//echo $RecordDay .' $RecordDay<br>';
}
if ($RecordDay == $date_day1) {
if ($stmt = mysqli_prepare($mysqli, "UPDATE 2_1_journal SET Amount = ? WHERE RecordDay = ? ")) {
$stmt->bind_param('ds', $amount1 , $date_day1);
$stmt->execute();
/*echo $date_day1 .' date_day1<br>';
echo $amount1 .' amount1<br>';*/
}
}
else {
if ($stmt = mysqli_prepare($mysqli, "insert into 2_1_journal
(RecordDay, Amount, DebitAccount, CreditAccount)
values(?,?,?,?)")) {
$stmt->bind_param('sdss', $date_day1, $amount1, $debit1, $credit1);
$stmt->execute(); //execute above insertion
}
}
更新在兩個文件中都起作用(從兩個文件中調用)。只有在沒有Ajax的情況下調用才能插入作品。哪裏不對?
更新 終於發現有什麼問題了。如果$ _POST沒有設置(不發送),mysql中不會記錄任何內容。但是執行後沒有錯誤信息。只需要記住這裏的所有變量$ stmt-> bind_param('sdss',$ date_day1,$ amount1,$ debit1,$ credit1);必須存在。
感謝您的回答,但結果相同。更新作品,插入不起作用......瘋狂的東西... – user2232696 2013-04-08 21:44:50