ユーザーが作成したHTMLテンプレートを保存できるアプリケーションに取り組んでいます。ここで、ユーザーは自由に使用できるいくつかのHTMLコンポーネントを使用でき、それらのコンポーネントを使用して静的HTMLページを作成できます。
javascript関数を使用してページのコンテンツを自動保存しています。
function saveContent(){
//var getContent=$('#mainWrap').children().removeAttr('id');
var $getContent=$('#mainWrap');
var $finalContent=$getContent.children().removeAttr('id');
var auto="auto";
var pageId = <?php echo $pageId;?>;
var webId = <?php echo $webId;?>;
var userId = <?php echo $userId;?>;
$.ajax({
url:"auto_save.php",
type:"POST",
dataType:"text",
data:"txtComp="+$('#mainWrap').html()+"&auto="+auto+"&pageId="+pageId+"&webId="+webId+"&userId="+userId
});
}
var interval = 1000 * 60 * 0.30; // where X is your every X minutes
setInterval(saveContent,interval);
問題:ユーザーが保存したHTMLコンポーネントからIDを削除したいのですが、IDは自動生成され、ユーザーがテンプレートを公開するときに必要ないためです(作成後のドメインで)。と呼ばれるページ全体をラップするメインラッパーがありますid=mainWrap
。このようにIDを削除しようとすると、 $('#mainWrap').children().removeAttr('id');
それらはDOMの現在のコンテキストからも削除されます。つまり、ユーザーがテンプレートを編集しているページからも削除されます。
質問:mainWrap
オブジェクトの現在のコンテキストに影響を与えずに、HTML要素からIDを削除するにはどうすればよいですか?
このような別のオブジェクトに割り当ててみました
var $getContent=$('#mainWrap');
var $finalContent=$getContent.children().removeAttr('id');
しかし、それでも失敗しました。
これが可能かどうかについてのコメントや修正はありますか?それとも私はこれを間違った方法で行っていますか?
更新:この問題はある程度解決されています。次に、ユーザーが編集ページに戻ったときにIDを追加します。このコードを使用して上記の保存されたコンテンツを取得します
<?php
$sqlEdit = "select revisionContent from tbl_revision where revisionId='".$_SESSION['contentId']."'"; //The query to get the record
$rsEdit = $dbObj->tep_db_query($sqlEdit);//The database object to execute the query
$resEdit = $dbObj->getRecord($rsEdit);
$IdLessContent = $resEdit['revisionContent'];//Variable with the record
?>
今、私はこのPHP変数をjavascriptで使用したいので、これを行いました。
<script language="javascript">
var getSavedContent = '<?php echo json_encode($IdLessContent); ?>';
var trimmedCont=($.trim(getSavedContent).slice(1));
//console.log(trimmedCont);
var lengthCont= trimmedCont.length;
var trimmedCont=$.trim(trimmedCont.slice(0,lengthCont-1));
var pageContent=$('<div class="addId">').append(trimmedCont); //Here I tried creating a div dynamically and appending the content to the div.But now I am not able to manipulate or work on this dyamic div and get NULL when I alert saying $('.addId').html();
$('.addId').children().attr('id', 'test'); //I tried doing this but does not work
これは機能していません。光を当ててください。