我必须在屏幕上显示插入数据库的所有记录,而不刷新页面。我有3列名为Firstname,Lastname,Email,点击提交按钮后,数据将使用ajax插入数据库中。
现在我在同一个屏幕上提取记录而不刷新页面但是当我刷新页面时它不起作用,然后显示最后插入的记录。
请查看以下链接。你会明白我在问什么。同时插入数据和显示数据。
的index.php
<?php
ob_start();
session_start();
include('../../db/connection.php');
$sql = "SELECT * FROM test1";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" id="register" autocomplete="off">
<input type="text" name="fname" id="fname" placeholder="Firstname">
<input type="text" name="lname" id="lname" placeholder="Lastname">
<input type="email" name="email" id="email" placeholder="Email">
<input type="submit" name="submit" value="submit" >
</form>
<table border="1" style="margin-top: 25px;">
<tr>
<th>Id</th>
<th>Firstname</th>
<th>Lastname</th>
<th>Email</th>
</tr>
<?php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr>
<td>".$row['id']."</td>
<td>".$row['fname']."</td>
<td>".$row['lname']."</td>
<td>".$row['email']."</td>
</tr>";
}
} else {
echo "0 results";
}
$conn->close();
?>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$('#register').submit(function(e){
e.preventDefault(); // Prevent Default Submission
var fname = $("#fname").val();
var lname = $("#lname").val();
var email = $("#email").val();
var dataString = 'fname='+ fname + '&lname='+ lname + '&email='+ email;
$.ajax(
{
url:'process.php',
type:'POST',
data:dataString,
success:function(data)
{
// $("#table-container").html(data);
$("#register")[0].reset();
},
});
});
</script>
</body>
</html>
Process.php
$firstname=$_POST['fname'];
$lastname=$_POST['lname'];
$email=$_POST['email'];
$sql = "INSERT INTO test1 (fname, lname, email) VALUES ('$firstname', '$lastname', '$email')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
$conn->close();
答案 0 :(得分:1)
$('#IdTable tr:last').after('<tr><td>id<td>fname<td>lname<td>email</tr>');
答案 1 :(得分:0)
将id定义到表
<table border="1" style="margin-top: 25px;" id="myTable">
ajax调用中的更改
$.ajax(
{
url:'process.php',
type:'POST',
data:dataString,
success:function(data)
{
$('#myTable tr:last').after('<tr><td>' +fname +'</td><td>'+lname+'</td><td>'+email+'</td></tr>');
$("#register")[0].reset();
},
});
注意:如果在插入代码时出现错误,你应该处理这个案例,因为目前你只是采取了积极的案例。
我希望这会有所帮助
答案 2 :(得分:0)
首先,我建议您使用mysqli查看binding parameters以使您的查询更加安全。
然后,为了在不刷新的情况下添加日期,您可以在成功插入时返回数据。然后append将此数据发送到表格。
示例Process.php
if (mysqli_query($conn, $sql)) {
echo "<tr>
<td>".mysqli_insert_id($conn)."</td>
<td>".$firstname."</td>
<td>".$lastname."</td>
<td>".$email."</td>
</tr>";
} else {
答案 3 :(得分:0)
因为你只有一个表,所以使用下面的代码。
$('table tr:last').after('<tr>...</tr><tr>...</tr>');
如果您有任何类或ID,则可以将以下语法修改为$('selector tr:last')
在ajax call
中成功使用它