按下链接时更新PHP中的数据库字段


Updating database field in PHP when link is pressed

我的页面列出了MySQL表中的所有行,并将它们作为链接放在单独的div中。

        while($row = mysqli_fetch_array($result))
        {
            echo "<a href='projects/" . $row['dir'] . "'><div>";
            echo "<h2>" . $row['name'] . "</h2>";
            echo "<p>Created: " . $row['date_created'] . "</p>";
            echo "<p>Last opened: " . $row['date_last_opened'] . "</p>";
            echo "<p>" . $row['description'] . "</p>";
            echo "</div></a>";
        }

当我点击一个框(div)时,它会打开那个特定的项目。我需要的是,当我点击项目时,将项目的"date_last_opened"字段更新为当前日期。表中它的列的类型为"date"。

感谢任何能提供帮助的人。

简单的方法是使用Jquery和AJAX:

首先在while循环中为您的链接添加点击功能,如下所示:

echo "<a href='projects/" . $row['dir'] . "' onclick='update(".$row['name'].")';><div>";

在JS文件中使用Jquery Ajax:

function update(name){
var now = new Date();
var dateToInsert = now.format("dd/M/yy h:mm tt");//or whatever format you need
var projectName = name;
$.ajax({
type: "POST",
url: "update.php",
data: { date: dateToInsert, name: projectName}
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
}

和您的更新.php:

if(isset($_POST['date']) && $_POST['name']){
$sql = "update yourTable set date ='".$_POST['date']."' where name= '".$_POST['name']."'";
//Rest of the code to execute query
}
else{
    echo "AJAX call failed to send post variables";
}