我在index.php文件中有这样的表单。
<form >
<input type="text" id="fname" >
<input type="text" id="lanme" >
<input type="button" id="submit" value="send">
</form>
我从user收到两个输入。当用户点击发送按钮调用jquery函数并将fname和lname发送到record.php文件时。这是jquery函数。
$(document).ready (function() {
$("#submit").click(fucntion(){
$fname=$("#fname").val();
$lanme=$("#lname").val();
$.post("record.php") , { fname: fname , lname : lname }).done(function(data){
alert(data);
});
});
});
这是record.php文件
<?php
$fname=$_POST['fname'];
$lanme=$_POST['lanme'];
$mysqli=new mysqli(host,username,password,database);
$stmt=$mysqli->prapare("INSERT INTO info (fname , lname) VALUES (?,?))";
$stmt->bind_param("ss",$fname , $lname);
$stmt->execute();
?>
在index.php中我打印“table”.i使用此代码在index.php文件中打印表。
<?php
try {
$dbh = new PDO('mysql:host=HOST;dbname=DATABASENAME', $user, $password);
$sth = $dbh->prepare('SELECT * from info ');
$sth->execute();
$result = $sth->fetchAll();
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
<table>
<tbody>
<tr>
<td>fname</td>
<td>lname</td>
</tr>
<?php foreach($result as $row) : ?>
<tr>
<td><?php echo $row[0] ; ?></td>
<td><?php echo $row[1] ; ?></td>
</tr>
<?php endforeach ; ?>
</tbody>
</table>
以上所有代码都有效,我也没有任何问题。
当用户输入值fname和lname并单击发送按钮时,fname和lname将发送到服务器并存储在数据库中。如果用户想要在表中看到结果他/她必须刷新页面,但我想在不刷新页面的情况下在表上显示结果。 否则,当用户单击发送按钮并发送数据时,index.php中的表会动态更改并动态地将结果显示给用户。
答案 0 :(得分:1)
我认为最好的方法是通过Ajax提交表单,并在成功回调中将新行附加到您的表格中,例如使用jQuery的.append()。所以你根本不必重新加载你的页面..
祝你好运答案 1 :(得分:0)
您必须手动添加行(来自js)。 在我的脚本中,我使用underscore库:
var template = _.template('<tr><td><%= fname %></td><td><%= lname %></td></tr>');
$.post("record.php", {fname: fname, lname : lname}).done(function() {
$('table tr:last-child').after(template({fname: fname, lname: lname});
});
BTW:你应该使用PDO 或 mysqli而不是两者。
答案 2 :(得分:0)
您可以从索引页面重复发出ajax请求,并检查是否添加了任何新条目。但它实际上是一个开销并影响整体性能。
查看一些工具,例如juggernaut或PeriodicalUpdater
答案 3 :(得分:0)
您需要执行以下步骤: