我正在尝试使用以下jQuery,Ajax和PHP向表中添加一行。我将一个JSON编码的数组返回给Ajax。
当我使用成功作为Ajax时,该行不会附加到表中,也没有警报。
如果我将成功更改为完成,则会附加行,但所有单元格都显示为“未定义”。我不确定成功函数失败的原因。
的jQuery / AJAX
$('#insert').click(function (e) {
e.preventDefault();
$.ajax({
url: "Gender/process.php",
type: "POST",
data: $('form').serialize(),
dataType:"json",
success: function (strMessage) {
alert(strMessage[0]);
$('#pro-table').append(
'<tr class="row"><td>' + strMessage[0] + '</td>\n\
<td>' + strMessage[1] + '</td>\n\
<td>' + strMessage[2] + '</td>\n\
<td>' + strMessage[3] + '</td>\n\
<td>' + strMessage[4] + '</td></tr>'
);
$(".front").addClass('front-transform');
$(".back").addClass('back-transform');
}
});
$("form").trigger("reset");
});
PHP
$user = mysqli_real_escape_string($con, $_POST['user']);
$gender = mysqli_real_escape_string($con, $_POST['gender']);
$description = mysqli_real_escape_string($con, $_POST['description']);
if (isset($user) && isset($gender) && isset($description) && $user != '' && $gender != '' && $description != '') {
$insert_query = "INSERT INTO php_pro1 (user, gender, description) VALUES ('$user','$gender', '$description')";
$rks = mysqli_query($con, "SELECT (up_votes, down_votes) FROM php_pro1 ORDER BY id DESC LIMIT 1");
$row = mysqli_fetch_row($rks);
if (mysqli_query($con, $insert_query)) {
$insert = array($user, $gender, $description, $row[0], $row[1]);
echo json_encode($insert);
} else {
echo mysqli_error($con);
}
} else {
echo 'Failed: ' . mysqli_error($con);
}
答案 0 :(得分:0)
所以经过几个小时没有线索有什么问题,原来这个MySql查询中的括号引起了问题
$rks = mysqli_query($con, "SELECT (up_votes, down_votes) FROM php_pro1 ORDER BY id DESC LIMIT 1");
应该只是......
$rks = mysqli_query($con, "SELECT up_votes, down_votes FROM php_pro1 ORDER BY id DESC LIMIT 1");
解决了这个问题