我使用 ajax 成功地將資料插入到我的資料庫中。但不知何故,它沒有彈出我的成功警報訊息。這是我的 jquery 代碼示例。
$('button[name="submitmsgd"]').click(function(e){
var categorysupAr = [];
var unitsgdAr=[];
var idsgdAr=[];
var idsgdlength= $("input[name='idsgd[]']").val().length;
var namesgdAr= [];
var namesgdlength= $("input[name='namesgd[]']").val().length;
var detailsgdAr = [];
var qtysgdAr = [];
var pricesgdAr = [];
var totalsAr = [];
var datefield= $("input[name='datetime']").val();
$("select[name='categorysup[]']").each(function(){
categorysupAr.push(this.value);
});
$("select[name='unitsgd[]']").each(function(){
unitsgdAr.push(this.value);
});
$("input[name='idsgd[]']").each(function(){
idsgdAr.push(this.value);
});
$("input[name='namesgd[]']").each(function(){
namesgdAr.push(this.value);
});
$("textarea[name='detailsgd[]']").each(function(){
detailsgdAr.push(this.value);
});
$("input[name='qtysgd[]']").each(function(){
qtysgdAr.push(this.value);
});
$("input[name='pricesgd[]']").each(function(){
pricesgdAr.push(this.value);
});
$("input[name='totals[]']").each(function(){
totalsAr.push(this.value);
});
if ($.inArray("defaultc", categorysupAr)>-1){
e.preventDefault();
alert("Please choose the right category in all fields");
}
else if ($.inArray("defaultu", unitsgdAr)>-1){
e.preventDefault();
alert("Please choose the right unit in all fields");
}
else if ($.inArray("", idsgdAr)>-1||idsgdlength<=2){
e.preventDefault();
alert ("ID can't be empty, and must be more than 2 characters in all fields");
}
else if ($.inArray("", namesgdAr)>-1||namesgdlength<=2){
e.preventDefault();
alert ("Name can't be empty, and must be more than 2 characters");
}
else if ($.inArray("", totalsAr)>-1||$.inArray("0", totalsAr)>-1){
e.preventDefault();
alert ("Please make sure all quantity and all prices are filled with correct format(Only number allowed)");
}else{
$.ajax({
url: "include/insertmsgd.php",
method: "POST",
data:{category:categorysupAr, unitsgd:unitsgdAr, idsgd:idsgdAr, namesgd:namesgdAr, detailsgd:detailsgdAr, qtysgd:qtysgdAr, pricesgd:pricesgdAr, totals:totalsAr, datefield:datefield},
success: function (data) {
alert(data);
}
});
}
});
這是我的php代碼:
<?php
include "myconfiguration.php";
if (isset($_POST["idsgd"])) {
$idsgd = $_POST["idsgd"];
$category = $_POST["category"];
$unitsgd = $_POST["unitsgd"];
$namesgd = $_POST["namesgd"];
$detailsgd = $_POST["detailsgd"];
$qtysgd = $_POST["qtysgd"];
$pricesgd = $_POST["pricesgd"];
$totals = $_POST["totals"];
$date = date('Y-m-d H:i:s', strtotime($_POST["datefield"]));
for($index=0; $index<count($idsgd); $index ) {
$idsgd_unstring = mysqli_real_escape_string($conn, $idsgd[$index]);
$category_unstring = mysqli_real_escape_string($conn, $category[$index]);
$unitsgd_unstring = mysqli_real_escape_string($conn, $unitsgd[$index]);
$namesgd_unstring = mysqli_real_escape_string($conn, $namesgd[$index]);
$detailsgd_unstring = mysqli_real_escape_string($conn, $detailsgd[$index]);
$qtysgd_unstring = mysqli_real_escape_string($conn, $qtysgd[$index]);
$pricesgd_unstring = mysqli_real_escape_string($conn, $pricesgd[$index]);
$totals_unstring = mysqli_real_escape_string($conn, $totals[$index]);
$query= '
INSERT INTO msgeneralgoods
VALUES("'.$idsgd_unstring.'", "'.$category_unstring.'", "'.$unitsgd_unstring.'", "'. $namesgd_unstring.'",
"'.$detailsgd_unstring.'", "'.$qtysgd_unstring.'", "'.$pricesgd_unstring.'", "'.$totals_unstring.'", "'.$date.'");
';
mysqli_query($conn, $query);
}
if (mysqli_query($conn, $query)) {
echo '<script language="javascript">';
echo 'alert("Data Inserted")';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'alert("Error")';
echo '</script>';
}
}
?>
我確實在我的 php 頁面中為我的 if 條件嘗試了這段代碼
if (mysqli_query($conn, $query)) {
echo 'Data Saved';
} else {
echo 'Error'
}
但仍然沒有警報訊息....我對 ajax 很陌生,有人可以告訴我我在這里做錯了什么嗎?
uj5u.com熱心網友回復:
如果有錯誤,則將錯誤添加到 ajax 呼叫以回傳錯誤
$.ajax({
url: "include/insertmsgd.php",
method: "POST",
data:{category:categorysupAr, unitsgd:unitsgdAr, idsgd:idsgdAr, namesgd:namesgdAr, detailsgd:detailsgdAr, qtysgd:qtysgdAr, pricesgd:pricesgdAr, totals:totalsAr, datefield:datefield},
success: function (data) {
alert(data);
},
error: function(xhr, status, error) {
var err = eval("(" xhr.responseText ")");
alert(err.Message);
}
});
uj5u.com熱心網友回復:
在控制臺和谷歌搜索后,我發現我的 ajax 呼叫被取消了,因為我的保存按鈕是
button type="submit"
所以我把它改成
button type="button"
這樣我就可以看到我的警報彈出了..
希望這對和我有同樣問題的人有所幫助
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/414248.html
標籤:
