0

脚本应该发布评论,并在从服务器加载答案时。它适用于 Firefox,但在 Chrome 中我猜没有触发任何事件,您可以单击一个按钮但什么也不会发生。我在 Chrome 开发者工具中检查了一些错误,但没有发现任何错误。

HTML:

<div class="posted_comments" id="comments'.$post_id.'"></div>
<form method="post" id="c'.$post_id.'">
    <input class="comment_input" placeholder="Write your comment here..." name="comment" />
    <input name="post_id" id="post_id" hidden="hidden" value='.$post_id.' >
    <button class="comment_button" onclick="post_comment('.$post_id.')">Send</button>
</form>

jQuery脚本:

 function post_comment(id) {
     x = "#c" + id;
     y = "#comments" + id;
     $(x).submit(function () {
         $.ajax({
             type: 'POST',
             url: 'post_comment.php',
             data: $(x).serialize(),
             cache: false,

             success: function (data) {
                 $(y).html(data);
             },

             complete: function () {
                 $(x)[0].reset();
                 $(x).unbind();
             }
         });
         return false;
     });
 };
4

4 回答 4

2

不要只查看开发人员工具中的错误。使用 Chrome 调试器在代码中设置断点并查看它到达的断点。

您可以debugger;在要停止的代码中添加语句,或者在 Chrome 调试器的 Sources 选项卡中打开代码并单击左边距以设置断点。

post_comment()无论哪种方式,在函数的开头、submit()回调的开头(即$.ajax()行)以及每个success回调的开头都设置断点complete

然后你可以看到代码有多远,看看变量等等。这应该会给你更多的线索。

这是JavaScript 调试介绍有关 Chrome DevTools 的更多信息

于 2013-09-06T07:16:12.797 回答
1

我很确定 Chrome 会在不执行您的功能的情况下提交表单,因此您需要阻止默认操作。

<button class="comment_button" data-id="' . $post_id . '">Send</button>

$('.comment_button').click(function(event){
   event.preventDefault();
   //put you ajax here, and get the post ID with $(this).attr('data-id');
});
于 2013-09-06T07:05:29.147 回答
0

根据 :

<div class="posted_comments" id="comments'.$post_id.'"></div>
<form method="post" id="c'.$post_id.'">

和:

x = "#c" + id;
y = "#comments" + id;

如果你这样称呼它:

post_comment('.$post_id.')

那么你的变量将是:

x = "#c.$post_id.";
y = "#comments.$post_id.";

在这种情况下,您的 ID 错误,您有额外的单引号。

于 2013-09-06T07:26:10.137 回答
0

尝试这个

HTML:

<php include ('data.php');?>
    <form action="action.php" method="post">
    <label>Name:</label>
    <input name="name" type="text" placeholder="Name here"/><br>
    <label>Comment:</label>
    <textarea name="comment" type="text" placeholder="Write a comment here"/></textarea>
    <br>
    <input type="submit" name="submit" value="Send">

然后创建一个动作文件

动作.php

<?php 
$handle = fopen("data.php", "a");
if( isset( $_POST['name'] ) &&  strlen( $_POST['name'] ))
    {
fwrite($handle,"<br>");
fwrite($handle,'---------------------------------------');
fwrite($handle,"<br><b>");
fwrite($handle,$_POST["name"]);
fwrite($handle,'<br> Comment: <br>');
fwrite($handle,$_POST["comment"]);
fclose($handle); 
header("Location: ./index.php");
       }
else
     {
echo "name required <br> <a href='./index.php'>OK</a>";
      }
exit;
?>

如果它不起作用,您需要编辑一些代码

于 2013-09-06T07:24:41.030 回答