0

首先,我对 php 知之甚少,并且仍在学习,所以请用你的答案对我轻松一点。基本上我正在开发一个功能类似于社交网站的项目,用户能够发送和接收私人消息等。我已经让这一切都很好,当你设置变量时,消息甚至会进入 messages_deleted.php 页面数据库中从“0”到“1”的值。

有没有办法让用户自己这样做,通过单击一段文本来删除他们自己的消息?

我正在使用 php,所以如果有人有任何想法,我需要一段 php 代码来让我这样做?

这是我正在使用的当前 php 脚本:

<?php


    $page_title = "Messages";
        include('includes/header.php'); 

        confirm_logged_in();

        include ('includes/mod_login/login_form.php');  
    ?>

<div class="modtitle">
  <div class="modtitle-text">Inbox</div>
</div>

<div class="modcontent">

<strong>Inbox</strong> | <a href="messages_sent.php">Sent Messages</a> | <a href="messages_deleted.php">Deleted</a>
<br /><br />
<table width="100%" border="0" cellpadding="5" cellspacing="0">
  <tr bgcolor="#CCCCCC">
    <td width="30%"><strong>Recieved</strong></td>
    <td width="20%"><strong>From</strong></td>
    <td width="28%"><strong>Subject</strong></td>
    <td width="0%"><strong>Read/Unread</strong></td>
      <td width="0%"><strong>Delete</strong></td>
  </tr>
<?php
        $inbox_set = get_inbox();
        while ($inbox = mysql_fetch_array($inbox_set)) {

?>

<?php
 if ($inbox['read'] == 0) { ?>
  <tr bgcolor="#6666B3">
<?php }
 if ($inbox['read'] == 1) { ?>
    <tr>

<?php }  ?>



    <td><?php 



    $datesent1 = $inbox['date_sent'];


    echo "$datesent1"; ?></td>


    <a href="profile.php?id={$inbox['from_user_id']}"><td><?php echo "<a href=\"profile.php?id={$inbox['from_user_id']}\">{$inbox['display_name']}"; ?></td></a>

    <td><?php echo "<strong><a href=\"read_message.php?msg={$inbox[0]}\">{$inbox['subject']}</a></strong>"; ?></td>

    <td><?php   if ($inbox['read'] == 0)  {
                echo "Unread"; 
                }
                if ($inbox['read'] == 1)  {
                echo "Read";
                }
                ?></td>
                <td>
                <?php 
                if ($inbox['delete'] == 0)  {
                echo "Delete";


                }
                 if ($inbox['delete'] == 1)  {
                echo "$deleted_set;";
                }   


                    ; ?></td>



                </td>

<?php
}


?>

</tr>
</table>

</div>

<?php include('includes/footer.php'); ?>

我真正需要的是一种使“删除”行可点击的方法,这样当用户点击它时,它会将值设置为“1”。如果可以那样做,我想对我来说会容易得多。

4

3 回答 3

0

是的。这很简单。您可以查看一些在页面上运行的基本 jQuery 和 AJAX。这是API文档的链接。

于 2012-10-07T17:38:45.600 回答
0

假设

如果您可以将 jQuery 包含到您的项目中,那么您可以使用 PHP + AJAX 来处理它。说,你有一个 PHP 文件,它使消息被删除为messages_deleted.php. 并且要删除一条消息,我假设您需要将一个参数传递id给脚本,最终以这种方式出现:messages_deleted.php?id=5.

还假设您的PHP 文件中的代码是:

<?php
    mysql_connect();
    if (mysql_query("UPDATE `messages` SET `deleted` = 1 WHERE `id` = " . mysql_real_escape_string($_GET["id"])))
        die ("deleted");
    else
        die ("error");
?>

代码

您可以使用 jQuery$.getScript()为您完成这项工作。

如果消息有效并被删除,您的 PHP 脚本应该die("deleted");. 相应调整。

$(document).ready(function(){
    $("table tr").click(function(){
        $.getScript("messages_deleted.php", function(data){
            if (data == "deleted")
                alert("Message Deleted");
        });
    });
});
于 2012-10-07T17:39:58.530 回答
0

如果你不想使用 Ajax,你应该创建一个链接,将用户重定向到一个页面,例如delete_message.php?mid=16mid 是用户想要删除的消息 id,

然后在服务器端首先检查该消息是否属于要删除它的用户,因此用户无法删除其他人的消息,

然后运行一个 mysql 代码,它应该看起来像这样:UPDATEmessages SETdeleted = '1' WHEREid= '16'

希望对您有所帮助,如果您还有其他问题,请告诉我。

于 2012-10-07T17:42:50.523 回答