javascript - 即使在应用 AJAX 后页面仍在重新加载

标签 javascript ajax reloading

我正在尝试删除一行数据库。记录正在删除,但问题是页面正在重新加载。因为,我正在使用 AJAX,页面不应刷新。 这是 js 函数:

function delThis(id)
{
var deleteRow = id;
var page = "stu_rec1.php";
var parameters ='deleteRow='+deleteRow;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
        alert("Form sent successfully");
};
xmlhttp.open("POST",page,true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(parameters);
}

HTML代码如下:

<?php for($i=0;$i<count($id);$i++){?>
<tr>
    <td><?php echo $name[$i];?></td>
    <td><?php echo $email[$i];?></td>
    <td><?php echo $mobno[$i];?></td>
    <td><?php echo $gender[$i];?></td>
    <td><?php echo $address[$i];?></td>
    <td><input type="submit" name="delete" value="Delete" id="delete" onclick="delThis(<?php echo $id[$i];?>);" ></td>
</tr>
<?php }?>

这是执行删除的代码:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$db="myDB";
$delete = $_POST["deleteRow"];
$conn = new mysqli($servername, $username, $password,$db);

if ($conn->connect_error) {
    die("Connection failed: ".mysqli_connect_error());
}
$sql = "SELECT name, email, mobileno,gender,address FROM studentrecords";
$result = mysqli_query($conn, $sql);
$count=mysqli_num_rows($result);

if($delete !="")
{
$query= "DELETE FROM studentrecords WHERE id='$delete'";
$result1 = mysqli_query($conn, $query);
}

mysqli_close($conn);
?>

最佳答案

请将 type="submit"更改为 type="button"

<?php for($i=0;$i<count($id);$i++){?>
<tr>
<td><?php echo $name[$i];?></td>
<td><?php echo $email[$i];?></td>
<td><?php echo $mobno[$i];?></td>
<td><?php echo $gender[$i];?></td>
<td><?php echo $address[$i];?></td>
<td><input type="button" name="delete" value="Delete" id="delete" onclick="delThis(<?php echo $id[$i];?>);" ></td>
</tr>
<?php }?>
function delThis(id)
{
var deleteRow = id;
var page = "stu_rec1.php";
var parameters ='deleteRow='+deleteRow;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
    alert("Form sent successfully");
    //add here your callback row remove code
 };
 xmlhttp.open("POST",page,true);
 xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 xmlhttp.send(parameters);
}

关于javascript - 即使在应用 AJAX 后页面仍在重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36690196/

相关文章:

javascript - 使用 Jquery append 链接

php - 尝试使用 AJAX 上传文件时 FormData 对象始终为空

javascript - 将 javascript 对象列表发送到 Spring MVC 中的 Controller 时出现问题

javascript - 添加 json2.js 时出现语法错误

visual-studio - 如何让 Visual Studio 始终重新加载更改的解决方案、项目和文件?

javascript - 将 animate 和 load 与 jQuery 相结合

javascript - 如何在 javascript/nodejs 中获取澳大利亚/悉尼时区偏移量?

无需重新加载主机页面即可从其他页面工作的 HTML anchor

javascript - node.js https 请求和 XMLHttpRequest 有什么区别?