AJAX Inline Düzenleme: yeni değişikliklere PHP Güncelleme ekle

2 Cevap php

I’m working on a homepage and will use an AJAX inline editing script for the admin to make it as simple as possible. The script I’ve been using is this and it has almost everything I wanted from an inline editing script. My problem arises when I’m going to capture the new changes and send them to a PHP function which will update my database with those new changes.

AJAX ve PHP ile çok deneyim birlikte yüzden biraz kayboldum ama ben buldum bir kod denedim yok:

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

Sorun oldukça nasıl ve nerede bu kodu uygulamak veya eğer kullanmak için bile doğru kod bilmiyoruz olmasıdır. Size iki txt belgeleri ekledim kodunu göstermek için:

Index.php.txt

Ve

Jquery.editableText.js.txt

In index.php.txt veritabanından benim veri alır ve jQuery kod biraz kullanır indeks sayfası. jQuery.editableText.js.txt olarak beton jQuery kodudur. Ben PHP işleyicisi sayfa doğru alanını alarak ve daha sonra veritabanında güncelleme ile hemen hemen standart olduğunu tahmin.

2 Cevap

Sana sorularım var:

  1. $ MenuID şey kimliği içerir ve bu kimliği ile tablodan onu getirmek için kullanabilirsiniz. Bu doğru değil mi?

Bu doğru eğer PHP işleyicisi sayfasına bu kimliği geçmelidir.

Örnek:

index.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>

ve vücut parçası:

<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);
?>

ve bir daha, 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;
?>

O edit-in-page page Bir komut blok içinde bu kodu kullanarak olmalıdır diyor gibi. Yani hemen hemen vardı. Aşağıdaki (denenmemiş) çalışmalıdır.

<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>