-1

私はさまざまなエンティティを記録する CMS ELGG (http://www.elgg.org) を使用し、すべてのポスターを一覧表示するページを作成し、一部の JavaScript を使用して HTML を作成し、ユーザーが事前にフォーマットされたリストを印刷できるようにしました。これらのエンティティを印刷するかどうかを選択するJavaScriptもあります

したがって、ユーザーがこのページを取得できるように、このページをおそらくテキストエリア フィールドに保存したいと思います。すべての関数を textarea タグ内で実行すると、php 変数は機能しますが、javascript 設定フォームを許可しません。また、これらのエンティティの前に挿入したチェックボックスと競合し、印刷するかどうかを選択できます。テキストエリア内では機能しません...

したがって、このページを保存し、ユーザーがこのタイプの複数のページを保存して複数のモデルを使用できるようにする方法がわかりません。

このタイプの php 関数 ob ob flush start に関するいくつかの問題を読みましたが、自分に合ったものは見つかりませんでした

誰かが私に何か考えがあれば...

ありがとう ;)

php ファイルの例

<div id="engagements" class="blockcv">
    <div class="comptitrecv"><input type="checkbox" value="" id="printengagements" class="checkprint" checked="checked"/> Engagement citoyen</div>
   <script type="text/javascript">
function sortDescending(a, b) {
     var date1  = $(a).find("span").text();
       date1 = date1.split('/');
     date1 = new Date(date1[1], date1[0] -1, 1);
     var date2  = $(b).find("span").text();
       date2= date2.split('/');
     date2 = new Date(date2[1], date2[0] -1, 1);

     return date1 < date2 ? 1 : -1;
    };
    $(document).ready(function() {
        $('.shakeengagements .elementengagements').sort(sortDescending).appendTo('.shakeengagements');
    }); 
</script>
<div class="shakeengagements">
     <?php
$user = $_SESSION['user'];
$count_experiences = count_user_objects($user->guid, "experience");
$experiences = get_user_objects($user->guid, "experience", 99);
foreach ($experiences as $ent) { 
 ?>
  <script type="text/javascript">  
 $(document).ready(function() {
  $('#hide<?php echo $ent->guid; ?>').change(function(){
    if($(this).is(":checked")) {
        $('div#hidediv<?php echo $ent->guid; ?>').removeClass("noprint");
    } else {
        $('div#hidediv<?php echo $ent->guid; ?>').addClass("noprint");
    }
});
});
  </script>
<div class="elementengagements" id="hidediv<?php echo $ent->guid; ?>">
<div class="cvelleft">
<p><span><input type="checkbox" value="" id="hide<?php echo $ent->guid; ?>" class="checkprint" checked="checked"/>
<?php 
    $classementdates = $ent->ongoing;
    $enddate = $ent->enddate;
    if ($classementdates == 'ongoing') {
     echo '<span class="date">'; 
     echo $ent->startdate; 
     echo '<font style="display:none">9</font></span> - ';
     echo elgg_echo('resume:acejour');
     } else {
            if(empty($enddate)) {
                     echo '<span class="date">'; 
     echo $ent->startdate; 
     echo '<font style="display:none">9</font></span>';

            } else {
         echo $ent->startdate;
         echo ' - <span>';
         echo  $ent->enddate;
         echo '</span>';
     } 

     }
     ?> </span>:</p>
</div>
<div class="cvelright"> 
<p><?php echo $ent->heading; ?> - <?php echo $ent->structure; ?></p>
<p><?php echo $ent->remarques; ?></p>
</div>
</div>
<?php   } ?>
</div>
</div>
4

1 に答える 1

0

正確に何をしたいのか明確ではありませんが、私には、上記をレンダリングしてからtextarea?に表示したいように思えます。

あなたがそれをしたいのであれば、同じページにある場合に ob_start が機能しない理由がわかりません:

ob_start();
//your code that you want to appear in the textarea
$output = ob_get_clean();

echo "<textarea>".$output."</textarea>";

それが別のページである場合は、いつでも次のことができます。

$output = file_get_contents("/path/to/php_file.php");
echo "<textarea>".$output."</textarea>";

textareaを HTML として読みたい場合は、タグhtmlentities($output)内で次のことをお勧めします。textarea

echo "<textarea>".htmlentities($output)."</textarea>";

ただし、保存するためにテキストエリアをフォームに送信する場合、多くの HTML エンティティが表示されることに注意してください。たとえば、著作権記号 - © - は & copy; に変換されます。(注: & とコピーの間にスペースを入れる必要があります。そうしないと、私の意味がわかりません) - しかし、明らかに同じです。

アップデート

これには jQuery を使用できます。動作するはずです。最初は、div with id:エンゲージメントtextarea textarea div will get copied into thediv`内のすべて.... If you don't want the javascript (or anything else) to appear in the, then don't put it wihin the. I'd keep the below out of that

<input type="checkbox" id="form_submit" name="form_submit" value="yes">
<textarea id="output"></textarea>
<script>
    $(document).read(function(){
        $("#form_submit").click(function(){
            if($(this).checked){
                $("#output").val($("#engagements").text());
            }
        }
    });
</script>

上記はテストされていませんが、理論的には機能するはずです!

于 2012-02-11T12:46:18.550 に答える