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

Ajaxを使用したくない場合は、ユーザーをページにリダイレクトするリンクを作成する必要があります。たとえばdelete_message.php?mid=16、midはユーザーが削除したいメッセージIDです。

次に、サーバー側で、このメッセージが削除したいユーザーのものであることを最初に確認します。これにより、ユーザーは他のユーザーのメッセージを削除できなくなります。

次に、mysqlコードを実行します。次のようになりUPDATEます。messagesdeleted idSET= '1' WHERE= '16'

お役に立てば幸いです。他にご不明な点がありましたらお知らせください。

于 2012-10-07T17:42:50.523 に答える
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 に答える