0

我有一个网页,它使用 jquery.load() 来提取填充了从数据库中提取的 php 值的 html 代码。

$(function() {
console.log("Starting .load");
$("#stream").append($("#slipp-container").load("includes/databaseslippsAJAXserverside.php .slipp-container"));
});

我希望能够在不刷新页面的情况下向其中的一个添加评论。

每个单据都包含有关单据的基本信息,以及databaseslippsAJAXserverside.php单独加载的用户评论。

问题是对于每个滑动,还有一个“添加评论”框,它只是一个带有提交按钮的文本区域。 $value["ID"]是单据的唯一 ID。我以为我可以使用隐藏字段来传递用户名,并且函数调用自身来传递滑动的 ID,但我不知道从那里去哪里。

<form id="<?php echo $value["ID"]; ?>">
<textarea rows="4" cols="30"></textarea>
<input type="hidden" value="<?php echo $_SESSION["user"]; ?>" name="formUser">
<input type="submit" value="Add Comment" class="commentbutton" id="CCB<?php echo $value["ID"]; ?>" action="javascript: addComment(<?php echo $value["ID"]; ?>)">
</form>

任何时候一个页面上可能有超过 100 个滑动(Facebook 风格),那么我如何有一个函数将表单数据提交到相关的 php 文件以包含在数据库中,而不刷新页面?

我相当肯定 .load() 基本上会丢弃它加载的所有 javascript,这就是为什么我不能简单地将唯一的 php 生成的 javascript 附加到每个单据。

4

1 回答 1

0
  1. 在表单中添加类:

    <form id="<?php echo $value["ID"]; ?>" class="comments">
    <textarea rows="4" cols="30"></textarea>
    <input type="hidden" value="<?php echo $_SESSION["user"]; ?>" name="formUser">
    <input type="submit" value="Add Comment" class="commentbutton" id="CCB<?php echo $value["ID"]; ?>" action="javascript: addComment(<?php echo $value["ID"]; ?>)">
    </form>
    
  2. 在 javascript 中设置处理程序以形成提交:

    $(function() {
     $('form.comments').submit(function(e) {
        $.post('myformhandler.php',data: $(this).serializeArray(),function(data) {
         /* Add an action here performed on success loading, 
            use data as returned value; */
         });
        return false;
     }
    );
    });
    
于 2012-10-28T22:38:19.773 回答