HTML5テキストを編集し、ajaxを使用して保存する簡単なjqueryスクリプト

多くの場合、サイトのコンテンツを編集するプロセスでは、完成した結果をブラウザーページで確認する必要があります(非常に便利です)。 HTML5タグのプロパティ(contenteditable、Jquery、Ajax、PHP)を使用して、サイト用のシンプルなHTML5テキストエディターを作成します。



エディターには次のプロパティがあります。

-編集するテキストをクリックすると、このテキストをすぐに編集できます。

-テキストの編集後にエスケープキーを押すと、現在のテキストへのすべての変更がキャンセルされます。

-フォーカスを失うか、クリックして他のテキストを編集すると、変更されたテキストがサーバーに送信され、サーバーの送信および応答のステータスに関するメッセージが送信されます。



以下は、編集されたページのHTMLコードです。

<!DOCTYPE html> <html lang="ru"> <body> <div id="wrap"> <h1 id="item1_title" contenteditable="true" ><a href="http://jquery.ua-opt.com/htm5-text-edit.html"> jquery    HTML5       ajax</a></h1> <h3 id="item1_subtitle" contenteditable="true">  <i> HTML5 </i>,       Jquery-Ajax-Php-mysql.</h3> <div id="item1_content" contenteditable="true">   html 5.       .            .</div> <button id="save"></button> </div> </body> </html>
      
      





ご覧のとおり、各編集可能なテキストは、 contenteditableプロパティがオンになっいるタグで囲まれています。これは、ブラウザーでテキストを直接編集できるHTML5チップです。 サーバーに保存するには、編集中のテキストを正確に識別する必要があります。したがって、idには、アンダースコアで区切られたマテリアル識別子とデータベースフィールドが含まれます。たとえば、id = "item1_title"です。



[保存]ボタンは、[保存]ボタンをクリックすることに慣れている人向けです。 ボタンをクリックすると、テキストがフォーカスを失い(変更された場合)残るため、特別なロードは実行されません。



ページのヘッダーで、style.cssとjqueryを接続します。



 <!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>  jquery        ajax</title> <link rel="stylesheet" href="css/style.css"> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
      
      







次は実際にスクリプトです:



 <script> var contentold={}; //      function savedata(elementidsave,contentsave) { //       ajax $.ajax({ url: 'save.php', //url       type: 'POST', data: { content: contentsave, //   id:elementidsave }, success:function (data) { //    -  if (data == contentsave) //    ,   ok { $('#'+elementidsave).html(data); //      ,   $('<div id="status">  :'+data+'</div>') //      .insertAfter('#'+elementidsave) .addClass("success") .fadeIn('fast') .delay(1000) .fadeOut('slow', function() {this.remove();}); //  } else { $('<div id="status">  :'+data+'</div>') //     .insertAfter('#'+elementidsave) .addClass("error") .fadeIn('fast') .delay(3000) .fadeOut('slow', function() {this.remove();}); //  } } }); } $(document).ready(function() { $('[contenteditable="true"]') //  .mousedown(function (e) //    { e.stopPropagation(); elementid=this.id; contentold[elementid]=$(this).html(); //   $(this).bind('keydown', function(e) { //  Escape if(e.keyCode==27){ e.preventDefault(); $(this).html(contentold[elementid]); //    } }); $("#save").show();//  "" }) .blur(function (event) //    { var elementidsave=this.id; //id    var contentsave = $(this).html(); //   event.stopImmediatePropagation(); if (elementid===elementidsave) //  id    id ,  , {$("#save").hide(); } //     ,    if (contentsave!=contentold[elementidsave]) //   { savedata(elementidsave,contentsave); //   } }); }); </script>
      
      







サーバー上で編集したテキストを受け入れます-save.phpファイル



 <?php //include("db.php"); $id= filter_input (INPUT_POST , 'id' , FILTER_SANITIZE_STRING ); $id=explode('_', $id); $itemid=mysql_real_escape_string($id[0]); $itempole=mysql_real_escape_string($id[1]); $content = $_POST['content']; //get posted data //$content = mysql_real_escape_string($content); //escape string //$sql = "UPDATE content SET $itempole = '$content' WHERE element_id = '$itemid' "; if ($content) { print $content; } else print '№1'; ?>
      
      







表形式データのエディター(価格など)は特に便利です。テキストの書式設定は不要ですが、すぐに修正するか、新しいデータを追加する必要があります(スクリプトをアップグレードします)。 私自身のために、スクリプトをアップグレードして、寄付し、商品のデータベースに記入します。 この方法でデータベースにデータを入力することは、Excelの場合と同じくらい便利です。



シンプルなHTML編集スクリプトのデモ版[5

サンプルをダウンロードします



All Articles