0

我正在制作一个主页,并将为管理员使用 AJAX 内联编辑脚本,以使其尽可能简单。我一直在使用的脚本就是这个,它几乎包含了我想要的内联编辑脚本的所有内容。当我要捕获新更改并将它们发送到 PHP 函数时,我的问题出现了,该函数将使用这些新更改更新我的数据库。

我没有太多的 AJAX 和 PHP 经验,所以我有点迷茫,但我尝试了一个我发现的代码:

$.ajax({
  type: "POST",
  url: "update_handler.php",
  data: "newfieldvalue=" + newValue,
  success: function(msg){
    alert( "Data Saved: " + msg );
  }
});

问题是我不太清楚如何或在哪里实现此代码,或者它是否是正确的代码。为了向您展示代码,我附上了两个 txt 文档:

索引.php.txt

Jquery.editableText.js.txt

Inindex.php.txt是索引页面,它从数据库中检索我的数据并使用一些 jQuery 代码。其中jQuery.editableText.js.txt是具体的 jQuery 代码。我猜想 PHP 处理程序页面非常标准,可以获取正确的字段,然后在数据库中更新它。

4

2 回答 2

1

我有问题要问你:

  1. $menuID 包含某物的 id,您可以使用它通过该 ID 从表中获取它。这是正确的?

如果正确,您必须将此 ID 传递给 PHP 处理程序页面。

例子:

索引.php:

<script type="text/javascript">
jQuery(function($){
    $('h2.editableText, p.editableText').editableText({
        newlinesEnabled: false
    });

    $.editableText.defaults.newlinesEnabled = true;

    $('div.editableText').editableText();

    $('.editableText').change(function(){
        var newValue = $(this).html();

        // important code:
          $.ajax({
          type: "POST",
          url: "save.php",
          data: { val : newValue, key:$(this).parent().tagName, id:$(this).parent().attr('class')},
          success: function(msg){
            alert( "Data Saved: " + msg );
          }
       });

    });

});
</script>

和身体部位:

<body>
<div id="wrapper">
<div id="content">
    <?php 
    $isnull = getContent($menuID, "title");
    if ($isnull != "") {

    echo "<h2 class=\"editableText\"><center><p>" . getContent($menuID, "title") . "</p></center></h2><br>";
    } else {
        null;
    }
    ?>

    <div class="editableText">

<p class="<?php echo $menuID?>"><?php echo getContent($menuID, "maincontent");?></p>
        </div>
    </script>
    <?php

    mysql_close($connection);
?>

还有一个,save.php:

<?php

# content that you send from client; you must save to maincontent
$content=$_POST['val'];

# $from=='div' if it from maincontent or $from=='center' if it from title
$from=$_POST['key'];


# id of your post 
$id=$_POST['id'];

    #here you can save your content;
?>
于 2010-02-18T11:03:49.080 回答
0

正如它在页面编辑页面上所说,您应该在脚本块中使用该代码。所以你几乎拥有它。以下应该有效(未经测试)。

<script type="text/javascript">
    jQuery(function($){
        $('h2.editableText, p.editableText').editableText({
            newlinesEnabled: false
        });

        $.editableText.defaults.newlinesEnabled = true;

        $('div.editableText').editableText();

        //  bind an event listener that will be called when
        //  user saves changed content
        $('.editableText').change(function(){
             var newValue = $(this).html();

             // do something
             // For example, you could place an AJAX call here:
            $.ajax({
              type: "POST",
              url: "update_handler.php",
              data: "newfieldvalue=" + newValue,
              success: function(msg){
                alert( "Data Saved: " + msg );
              }
           });
        });

    });
</script>
于 2010-02-18T10:50:36.727 回答