如何将jQuery效果应用于正确的PHP消息?
我曾经在我的网站上使用过一个简单的PHP消息系统,运行良好,将数据存储到MySQL中,每条消息都有一个唯一的ID。我突然决定在发送和删除消息时添加jQuery效果。如果只有一条消息,我就可以让它工作,但是当有多条消息时,jQuery无法找出从哪里提取信息,因为数据需要独特的方法来识别是什么 以下是我为修复它所做的努力如何将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
$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,但我只是想用不同的方法让它发挥作用。现在把它放回去,我想我有一个主意。如果你遇到任何错误,请告诉我,很乐意帮助