当mysql数据库发生变化时,动态更改网站内容

时间:2014-02-18 13:38:36

标签: php jquery mysql

我在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中的表会动态更改并动态地将结果显示给用户。

4 个答案:

答案 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请求,并检查是否添加了任何新条目。但它实际上是一个开销并影响整体性能。

查看一些工具,例如juggernautPeriodicalUpdater

答案 3 :(得分:0)

您需要执行以下步骤:

  1. 确保您的AJAX调用返回新的表数据(这样您就可以在重新加载页面时显示它)
  2. 完成AJAX请求后,您必须使用AJAX发送的数据更改表格的内容
  3. 您应该考虑修改一下HTML(为什么要为每一行创建一个全新的表而不是创建行?)添加一些ID或类名,以便您可以在JS代码中引用它们