Php mysql数据库更改时动态更改网站内容
我在index.php文件中有这样一个表单Php mysql数据库更改时动态更改网站内容,php,jquery,mysql,Php,Jquery,Mysql,我在index.php文件中有这样一个表单 <form > <input type="text" id="fname" > <input type="text" id="lanme" > <input type="button" id="submit" value="send"> </form> <?php try { $dbh = new PDO('mysql:host=HOST;dbname
<form >
<input type="text" id="fname" >
<input type="text" id="lanme" >
<input type="button" id="submit" value="send">
</form>
<?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>
这是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();
?>
您必须手动添加行(从js)。
在我的脚本中,我使用库:
var-template=..template(“”);
$.post(“record.php”,{fname:fname,lname:lname}).done(函数(){
$('table tr:last child')。在(模板({fname:fname,lname:lname})之后;
});
顺便说一句:你应该使用PDO或mysqli,而不是两者兼用。我认为最好的方法是通过Ajax提交表单,并在成功回调中将新行附加到表中,例如使用jQuery的.append()。这样你就不必重新加载页面了
祝您好运您可以从索引页面(重复)发出ajax请求,并检查是否添加了任何新条目。但这确实是一项开销,会影响整体性能
查看一些工具,如或您需要执行以下步骤:
确保AJAX调用返回新的表数据(这样您就可以在不重新加载页面的情况下显示它)
完成AJAX请求后,您必须使用AJAX发送的数据更改表的内容
<> LI>你应该考虑修改你的HTML(为什么你要为每一行创建一个新的表而不是创建行?)添加一些IDS或类名,这样你就可以在JS代码中引用它们了。
是否执行。单击(功能()
work?这很有效?=>$stmt=$mysqli->prapare
?除非您有一个名为prapare
的预制函数,但我非常怀疑这一点。@adib16-这是一个打字错误,对吗?我在index.php中有一个用于编辑表中每行的按钮。如果我在用户发送数据后使用您的解决方案,并使用jquery在表中添加新行当用户因未从数据库添加新行而单击“编辑新表”时,用户无法编辑新行。我在index.php中有一个用于编辑表中每行的按钮。如果我在用户发送数据后使用您的解决方案,并且当用户因新行未添加而单击“编辑新表”时,我使用jquery在表中添加新行来自数据库的用户无法编辑新行。
<?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>
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});
});