Php mysql数据库更改时动态更改网站内容

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

我在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=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})之后;
});

顺便说一句:你应该使用PDOmysqli,而不是两者兼用。

我认为最好的方法是通过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});
    });