PHP/MySQLを使ってブログを作っていて編集投稿機能があります。
[編集] をクリックすると、ページが「更新」され (同じページに移動しますが、URL が変更されます)、 が<div>
展開され、編集したい投稿のテキストが に表示されます<textarea>
。
別の SO ユーザーの助けを借りて、この作業の一部を完了しました。唯一の問題は、編集可能なテキストをすべての<texarea>
ボックスに入れていることです。
これが実際の例です: http://thebulb.daysofthedad.net/testing.php
これを機能させる方法についていくつか考えていますが、jQuery や Ajax が苦手なため、その方法がわかりません。
- 編集可能なコンテンツを含む に ID を追加し、
<textarea>
その ID を jQuery スクリプトに渡します。 - ページを変更せずに、Ajax を使用して、編集したいテキストを に挿入します
<textarea>
。 <textarea>
[編集] をクリックすると、テキストのボックスが送信フォームのボックスに変わります。私が見つけた例(http://jsfiddle.net/25Hay/2/)を使用してその部分を機能させることができますが、それを検証のためにPHPスクリプトに送信してデータベースに挿入する方法がわかりません。
私が現在使用しているjQueryは次のとおりです。
$(function(){
// Insert editable text into the <textarea> box
$('.blogcontainer textarea[name=postcontent]').filter(function(i) { return $.trim($(this).val()) != ""; }).closest('.postreplycontainer').slideDown("fast");
// Execute when Edit link is clicked
$(document).on('click', '.postreply', function(e) {
// Collapse all previous expanded <div>'s
$(this).closest('.blogcontainer').siblings('.blogcontainer').find('.postreplycontainer').slideUp("fast");
// Expand / Collapse <div>' when "Post Reply" is clicked
$(this).closest('.blogcontainer').find('.postreplycontainer').slideToggle("fast")
// Focus <textarea> when <div> is expanded
.find('textarea[name=postcontent]').focus();
});
});