2015-05-04 5 views
3

Я создал редактор WYSIWYG как часть моей панели администратора, которая прекрасно работает и выходит на главную страницу. Тем не менее, если я хочу отредактировать этот пост, я хочу, чтобы то же самое отображалось внутри iframe, поэтому я могу обновлять его без потери стиля.Php внутри iframe не отображается

Вот создать пост с рабочим IFRAME:

<form action="actions/newDocAdd.php" method="post" id="rtf"> 
    <input type="text" name="doc_title" id="doc_title" required="required" placeholder="Document Title"/><br /> 



    <button class="postEditBtn" type="button" onclick="bold()" title="Bold Text"><i class="fa fa-bold"></i></button> 
    <button class="postEditBtn" type="button" onclick="italic()" title="Italic Text"><i class="fa fa-italic"></i></button> 
    <button class="postEditBtn" type="button" onclick="underline()" title="Underline Text"><i class="fa fa-underline"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontName()" title="Font Family"><i class="fa fa-font"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontsize()" title="Font Size"><i class="fa fa-text-height"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontcolor()" title="Font Colour"><i class="fa fa-eraser"></i></button> 
    <button class="postEditBtn" type="button" nclick="highlight()" title="Highlight Text"><i class="fa fa-magic"></i></button> 
    <button class="postEditBtn" type="button" onclick="link()" title="Add/Edit Link"><i class="fa fa-link"></i></button> 
    <button class="postEditBtn" type="button" onclick="unlink()" title="Remove Link"><i class="fa fa-chain-broken"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyLeft()" title="Text align-left"><i class="fa fa-align-left"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyCenter()" title="Text align-center"><i class="fa fa-align-center"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyRight()" title="Text align-right"><i class="fa fa-align-right"></i></button> 

    <br><br> 

    <textarea name="doc_content" id="doc_content" placeholder="Document Content" style="display: none;"></textarea> 
    <iframe name="editor" id="editor" style="width:100%; height: auto;"></iframe> 

    <br><br> 
    <input onclick="formsubmit()" type="submit" value="Create Document" name="submit"/><br /> 


</form> 

Вот страница обновление:

<?php require_once '../../db_con.php'; 

if(!empty($_GET['doc_id'])){ 
    $doc = intval($_GET['doc_id']); 
try{ 
    $results = $db->prepare('select * from doc_list where doc_id = ?'); 
    $results->bindParam(1, $doc); 
    $results->execute(); 

    } catch(Exception $e) { 
    echo $e->getMessage(); 
    die(); 
    } 

    $doc = $results->fetch(PDO::FETCH_ASSOC);  
    if($doc == FALSE){ 

     echo '<div class="container">'; 
     echo "<img src='../img/404.jpg' style='margin: 40px auto; display: block;' />"; 
     echo "<h1 style='margin: 40px auto; display: block; text-align: center;' />Oh Crumbs! You upset the bubba!</h1>"; 
     echo '<a href="userList.php" style="margin: 40px auto; display: block; text-align: center;">Get me outta here!</a>'; 
     echo'</div>'; 
     die(); 
    } 
} 

?> 



<?php 
    if(isset($doc)){ 
    ?> 


<form action="actions/updateDoc.php" method="POST"> 
    <input type="hidden" value="<?php echo $doc['doc_id'] ?>" name="doc_id" /> 
    <input type="text" value="<?php echo $doc['doc_title'] ?>" name="doc_title" /> 
    <br /> 
    <input type="text" value="<?php echo $doc['doc_content'] ?>" name="doc_content" /> 
    <br />  

!! - ИГРАТЬ, ЧТОБЫ ПОЙДАТЬ ЗДЕСЬ, ПОКАЖИТЕ ПОЧТУ, БЕЗ ПОТЕРЯТЬ ЛЮБОЙ СТИЛЬ - !!

<input type="submit" value="Update" name="submit" /> 



</form> 

</div> 



    <?php 
    } 
    ?> 

Я попытался просто показывать IFRAME с PHP внутри, но, конечно, это не так просто, если я показываю внутри текстовой просто швыряет в HTML. Я немного не уверен?

Так мне удалось повторить в содержание поста, но он отключает IFRAME, поэтому я не могу редактировать содержимое внутри:

<script> 

var iframe = document.getElementById('editor'); 
iframe = (iframe.contentWindow) ? iframe.contentWindow : (iframe.contentDocument.document) ? iframe.contentDocument.document : iframe.contentDocument; 
iframe.document.open(); 
iframe.document.write("<?php echo $doc['doc_content']; ?>"); 
iframe.document.close(); 

</script> 

Вот пример моего источника страницы:

<form action="actions/updateDoc.php" method="POST"> 

    <input type="hidden" value="46" name="doc_id" /> 
    <input type="text" value="new document biatch!" name="doc_title" /> 
    <br /> 


    <button class="postEditBtn" type="button" onclick="bold()" title="Bold Text"><i class="fa fa-bold"></i></button> 
    <button class="postEditBtn" type="button" onclick="italic()" title="Italic Text"><i class="fa fa-italic"></i></button> 
    <button class="postEditBtn" type="button" onclick="underline()" title="Underline Text"><i class="fa fa-underline"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontName()" title="Font Family"><i class="fa fa-font"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontsize()" title="Font Size"><i class="fa fa-text-height"></i></button> 
    <button class="postEditBtn" type="button" onclick="fontcolor()" title="Font Colour"><i class="fa fa-eraser"></i></button> 
    <button class="postEditBtn" type="button" onclick="hiliteColor()" title="Highlight Text"><i class="fa fa-magic"></i></button> 
    <button class="postEditBtn" type="button" onclick="link()" title="Add/Edit Link"><i class="fa fa-link"></i></button> 
    <button class="postEditBtn" type="button" onclick="unlink()" title="Remove Link"><i class="fa fa-chain-broken"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyLeft()" title="Text align-left"><i class="fa fa-align-left"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyCenter()" title="Text align-center"><i class="fa fa-align-center"></i></button> 
    <button class="postEditBtn" type="button" onclick="justifyRight()" title="Text align-right"><i class="fa fa-align-right"></i></button> 

    <br><br> 

    <textarea name="doc_content" id="doc_content" placeholder="Document Content" style="display: none;"></textarea> 


    <iframe name="editor" id="editor" style="width:100%; height: auto;"></iframe> 

<div id="editor1"></div> // As you can see nothing posting in here? 



    <br><br> 
    <input onclick="formsubmit()" type="submit" value="Update Document" name="submit"/><br /> 

</div> 

<script> 
$(document).ready(function(){ 
    $("#editor1").html("dgdgdfg g <u style="background-color: yellow;">dgdf</u> gg &nbsp;dgdfgd"); 
}) 
</script> 
+0

Похоже, вам удалось установить довольно связь между вашим PHP, HTML и JS ... Это может быть время, чтобы реорганизовать полностью. – naomik

+0

Также здесь есть хорошие 150 строк кода. Хороший вопрос обычно задает * изолированную * проблему. Это означает, что отправляется только код, который имеет отношение к * точной * проблеме. Не знаю, как этот вопрос получил 3 upvotes, подразумевая, что это * хороший * вопрос. Очень маловероятно, что другие смогут извлечь из этого выгоду. – naomik

+0

@naomik Я понимаю, что это не идеально, но до этого момента он работает отлично, все, что я просто хочу сделать, показывает данные из моей БД в iframe, есть ли у вас какие-либо предложения? – PhpDude

ответ

3

Поиграй с этим. jQuery поражает и заботится о многом!

Где ваши текущие теги сценария ставить:

Создать страницу под названием loaddiv.php с:

<?php 
echo['doc_content']; 
?> 

затем

<div id="editor1"></div> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    //$("#editor1").html("<?php echo $doc['doc_content']; ?>"); 
    $("#editor1").load("loaddiv.php"); 
}) 
</script> 

jQuery .html() API

+0

Комментарии не предназначены для расширенного обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/76939/discussion-on-answer-by-fabrizio-mazzoni-php-inside-iframe-not-showing). – Taryn

0

я понял это - так вот JS, который я использовал для включения в сообщение в моем PHP fr ом моя база данных моей IFRAME:

<script> 
var iframe = document.getElementById('editor'), 
    iframedoc = iframe.contentDocument || iframe.contentWindow.document; 

    iframedoc.body.innerHTML = '<?php echo $doc['doc_content']; ?> '; 

</script> 
Смежные вопросы