如何将jQuery效果应用于正确的PHP消息?

如何将jQuery效果应用于正确的PHP消息?,php,javascript,jquery,Php,Javascript,Jquery,我曾经在我的网站上使用过一个简单的PHP消息系统,运行良好,将数据存储到MySQL中,每条消息都有一个唯一的ID。我突然决定在发送和删除消息时添加jQuery效果。如果只有一条消息,我就可以让它工作,但是当有多条消息时,jQuery无法找出从哪里提取信息,因为数据需要独特的方法来识别是什么 以下是我为修复它所做的努力 $get_new_messages = mysql_query("SELECT * FROM messages WHERE to_user='$id' AND messag

我曾经在我的网站上使用过一个简单的PHP消息系统,运行良好,将数据存储到MySQL中,每条消息都有一个唯一的ID。我突然决定在发送和删除消息时添加jQuery效果。如果只有一条消息,我就可以让它工作,但是当有多条消息时,jQuery无法找出从哪里提取信息,因为数据需要独特的方法来识别是什么

以下是我为修复它所做的努力

    $get_new_messages = mysql_query("SELECT * FROM messages WHERE to_user='$id' AND message_read = '0' ORDER BY message_id DESC");
    while($messages = mysql_fetch_array($get_new_messages))
    {
    $message_id = $messages['message_id'];
    $from = $messages['from_user'];
    $from_username = $messages['from_username'];
    $pic_from = $messages['defaultpic_from'];
    $title = $messages['message_title'];
    $content = $messages['message_contents'];


    $new_messages .="<!--TITLE-->
    <div id=\"div_$message_id\"><!-- ACCORDION ELEMNT BEGINING-->
    <script type=\"text/javascript\">
    $(document).ready(function(){
        $(\"#reply_message_$message_id\").click(function() { 
        var to_user_$message_id = encodeURIComponent($('#to_user_$message_id').val()); 
        var from_user_$message_id = encodeURIComponent($('#from_user_$message_id').val())); 
        var defaultpic_from_$message_id  = encodeURIComponent($('#defaultpic_from_$message_id').val()); 
        var defaultpic_to_$message_id = encodeURIComponent($('#defaultpic_to_$message_id').val()); 
        var your_username_$message_id = encodeURIComponent($('#your_username_$message_id').val()); 
        var message_title_$message_id = encodeURIComponent($('#message_title_$message_id').val()); 
        var message_contents_$message_id = encodeURIComponent($('#message_contents_$message_id').val()); 
        var location2 = '#div_$message_id';
        var location3 = '#reply_success';
            $.ajax({ 
                type: \"POST\", 
                url: \"send_note.php\", 
                data: {to_user:to_user_$message_id, from_user:from_user_$message_id, defaultpic_from: defaultpic_from_$message_id, defaultpic_to:defaultpic_to_$message_id, your_username:your_username_$message_id, message_title:message_title_$message_id, message_contents:message_contents_$message_id}, 
                success: 
                $(location2).fadeOut();
                $(location3).fadeIn();
            }); 
        return false; 
        }); 

        $(\"#delete_message_button_$message_id\").click(function() {
        var  deleteId    = $('#deleteID_$message_id').val();
        var  location = '#div_$message_id';
        var location4 = '#delete_message_success';
            $.ajax({
                type: \"POST\",
                url: \"delete.php\",
                data: \"deleteId=\"+ deleteId,
                success: 
                $(location).fadeOut();
                $(location4).fadeIn();

            });
        return false;
        });

    });
    </script>
    <div class=\"title\">
    $title
    </div>
    <!--TITLE END-->


    <div class=\"inside\"><!-- THIS DIV CONTAINS EVERYTHING INSIDE THE SELECTED ACCORDION ELEMENT-->

<form name=\"send_note_$message_id\" id=\"$message_id\" class=\"form_right\">
    <input type=\"hidden\" name=\"message_id_$message_id\" id=\"message_id_$message_id\" value=\"$message_id\">
    <input type=\"hidden\" name=\"to_user_$message_id\" id=\"to_user_$message_id\" value=\"$from\">
    <input type=\"hidden\" name=\"from_user_$message_id\" id=\"from_user_$message_id\" value=\"$id\">
    <input type=\"hidden\" name=\"defaultpic_from_$message_id\" id=\"defaultpic_from_$message_id\" value=\"$default_pic_session\">
    <input type=\"hidden\" name=\"defaultpic_to_$message_id\" id=\"defaultpic_to_$message_id\" value=\"$pic_from\">
    <input type=\"hidden\" name=\"your_username_$message_id\" id=\"your_username_$message_id\" value=\"$username_session\">
    <input type=\"hidden\" name=\"message_title_$message_id\" id=\"message_title_$message_id\" value=\"$username_session Replied to your Note!\">
    <img class=\"pic_from_body_right\" src=\"$default_pic_session\">
    <textarea class=\"message_text\" name=\"message_contents_$message_id\" 

    id=\"message_contents_$message_id\" placeholder=\"Reply to $from_username here...\"></textarea>
        <br />

        <p class=\"reply_delete\">
        <input type=\"hidden\" id=\"deleteID_$message_id\" value=\"$message_id\">
        <button id=\"delete_message_button_$message_id\">Delete</button>
        <button id=\"reply_message_$message_id\">Reply</button>
        </p> 
        </form> 
        </div>
        </div>";    
    }

它抓取消息并正确地回显,所有这些都可以正常工作,只是jQuery删除和回复不起作用。我想不出来。是否有一种方法可以将jQuery放在一个单独的文件中,但jQuery会知道要删除的正确消息。

除非我别无选择,否则我永远不会这样做。用另一种语言的字符串为另一种语言编写代码将导致调试问题、语法错误无法识别,并且看起来非常难看。HTML还可以,但如果它可能破坏功能并停止进一步的脚本,最好避免这种做法

由于HTML元素属性使用双引号,如果在外部没有找到其他方法来提供JavaScript,我会考虑使用。


我会尝试将所有JavaScript文件包含在一个外部文件中,并在那里调用方法。此外,如果要在PHP中以双引号打印变量,比如HTML旁边的$myvar,最好使用{$myu var},因为这将确保它作为变量提取,而不是由于下划线和后面的文本而解析为文本。您是否能够查看此echo的源代码并确定JavaScript看起来应该是这样的?使用Chrome或Firefox FireBug或类似浏览器中的JavaScript控制台,查看您是否收到任何错误。

我重申我这里有一大堆与我的问题无关的东西,可能会把每个人的想法都弄糊涂,为了您的方便,现在要编辑是的,我最初在一个外部文件中有js,但我只是想用不同的方法让它发挥作用。现在把它放回去,我想我有一个主意。如果你遇到任何错误,请告诉我,很乐意帮助