Как изменить фрейм на div и загрузить контент в div

Есть ли способ конвертировать iframe со всеми содержащимися в нем атрибутами в div или php.

<iframe src='left_nav.php' name='left_nav' class="daemon" scrolling="auto" frameborder='0' height='100%' width="100%"></iframe>

Если я использую функцию php include для вызова left_nav.php файл:

<?php include left_nav.php; ?>

Как загрузить контент, который загружался во фрейм в div.

В основное название файл (другой файл)

function toencounter(rawdata) {document.getElementById('EncounterHistory').selectedIndex=0;
if(rawdata=='') {
return false;
} else if (rawdata=='New Encounter') {
top.window.parent.left_nav.loadFrame2('nen1','RBot','forms/newpatient/new.php? autoloaded=1&calenc=')
return true;
} else if (rawdata=='Past Encounter List') {
top.window.parent.left_nav.loadFrame2('pel1','RBot','patient_file/history/encounters.php')
return true;
}
var parts = rawdata.split("~");
var enc = parts[0];
var datestr = parts[1];
var f = top.window.parent.left_nav.document.forms[0];
frame = 'RBot';
if (!f.cb_bot.checked) {
frame = 'RTop';
}

parent.left_nav.setEncounter(datestr, enc, frame);
top.frames[frame].location.href  = '../patient_file/encounter/encounter_top.php?set_encounter=' +  enc;
}

В left_nav файл

setEncounter(edate, eid, frname) {
if (eid == active_encounter) return;
if (!eid) edate = '<?php xl('None','e'); ?>';
var str = '<b>' + edate + '</b>';
setDivContent('current_encounter', str);
active_encounter = eid;
encounter_locked=isEncounterLocked(active_encounter);
reloadEncounter(frname);
syncRadios();
var encounter_block = $(parent.Title.document.getElementById('current_encounter_block'));
var encounter = $(parent.Title.document.getElementById('current_encounter'));
var estr = '<a href=\'javascript:;\' onclick="parent.left_nav.loadCurrentEncounterFromTitle()">  <b>' + edate + ' (' + eid + ')</b></a>';
encounter.html( estr );
encounter_block.show();
}

function loadCurrentEncounterFromTitle() {
top.restoreSession();
top.frames[ parent.left_nav.getEncounterTargetFrame('enc')   ].location='../patient_file/encounter/encounter_top.php';
}

Это скрипт JS для loadFrame2

function loadFrame2(fname, frame, url) {
var usage = fname.substring(3);
if (active_pid == 0 && usage > '0') {
alert('<?php xl('You must first select or add a visitor.','e') ?>');
return false;
}
if (active_encounter == 0 && usage > '1') {
alert('<?php xl('You must first select or create an encounter.','e') ?>');
return false;
}
if (encounter_locked && usage > '1') {
alert('<?php echo xls('This encounter is locked. No new forms can be added.') ?>');
return false;
}
var f = document.forms[0];
top.restoreSession();
var i = url.indexOf('{PID}');
if (i >= 0) url = url.substring(0,i) + active_pid + url.substring(i+5);
if(f.sel_frame)
{
var fi = f.sel_frame.selectedIndex;
if (fi == 1) frame = 'RTop'; else if (fi == 2) frame = 'RBot';
}
if (!f.cb_bot.checked) frame = 'RTop';
top.frames[frame].location = '<?php echo "$web_root/interface/" ?>' + url;
if (frame == 'RTop') topName = fname;
return false;
}

-2

Решение

Так как вы хотите загрузить содержимое другого файла (left_nav.php) в div а не в iframeВы можете использовать несколько способов сделать это.

1) JS:

Создать div контейнер, в котором будет храниться ваш контент:

<div id="left_nav"></div>

Теперь вы можете использовать JQuery чтобы загрузить контент легко:

onClick="loadContent('path/to/file/left_nav.php')"

Это будет вашим loadContent функция:

function loadContent(path){
$("#left_nav").load(path);
}

2) PHP:

Вы также можете использовать PHP (передать параметр на URL, на котором вы сейчас находитесь yourfile.php?m=left_nav). Затем вы можете включить файл с контроллером (принцип MVC -> если вы хотите узнать больше об этом):

<?php
if($_GET["m"] == "left_nav")
include("left_nav.php");
?>

РЕДАКТИРОВАТЬ:

Кажется, вам нужно немного смешать оба. Вместо вашего iframe вам нужно вставить div и загрузить контент одновременно:

<div id="left_nav"><?php include("left_nav.php"); ?></div>

Это должно быть эквивалентно созданию iframe, Теперь, когда вы меняете src из iframe в ваших сценариях JS вместо использования этой строки:

top.window.parent.left_nav.loadFrame2('pel1','RBot','patient_file/history/encounters.php');

попробуйте изменить содержание div как я уже говорил ранее на 1), но вам нужна только функция loadContent.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]