• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Ausgabe von HTML Elementen

emmis

New member
Hallo Forum,

ich übergebe mittels

HTML:
window.parent.document.getElementById("linking_data_div").firstChild.nodeValue = '<div>TEST'+kontakt_id+'<\/div>';

erfolgreich Daten aus einem iFrame in ein div in einen übergeordneten Frame. Dort sehe ich dann auch das Ergebnis ... nur zu viel, denn <div></div> werden ebenfalls als Klartext ausgegeben. Leider kann ich nicht per Quelltext entnehmen, was da wirklich ausgegeben wird. Hat jemand nen Tip?

DANKE!!
 
nein, leider bring das nur ne Fehlermeldung. Denke, auch nach weiterem Googlen, dass es nur mit createElement. Jetzt muss ich nur noch rausbekommen, wie ich createElement beibringe, wo es das div (also innerhalb des Wrapper-divs) erzeugen soll und wie ich den Eintrag auch wieder loswerde.
 
doch noch ein Problem

Ich erzeuge nun wunderbar (dank eurer Hilfe) dieses dynamisch DIV und kann es auch dynamisch wieder entfernen:

Code:
window.parent.document.getElementById("linking_data_div").innerHTML=
'<div class="beschriftung" style="width:300px;" id="kontaktdiv_'+kontakt_id+'"><div style="width:11px; height:11px; float:left;" class="hgbutt-delete" onclick="p11_delcontactrow('+kontakt_id+')"><input name="kontakt_id[]" type="hidden" id="kontakt_id[]" value="'+kontakt_id+'">-<\/div><div style="width:280px; float:left;" class="beschriftung"> KONTAKT: '+k_text+'<\/div><\/div>';

... das div enthält nun ein Formularelement:

Code:
<input name="kontakt_id[]" type="hidden" id="kontakt_id[]" value="'+kontakt_id+'">

dieses wird im IE8 berücksichtigt aber nicht in FIREFOX und CHROME.
.. dh. dass nach dem Submit ein count($_POST[kontakt_id]) 0 ergibt.

Interessanterweise: Gebe ich das DIV nicht als dynamisches Element sondern "normal" ein ... funktioniert auch im FIREFOX und im CHROME die Übergabe als Array.

Woran kann es liegen, dass die dynamische Variante im FIREFOX und im CHROME nicht wollen?

Danke für weitere Stützen ...
 
... nein, ich denke nicht. Befindet sich innerhalb des div (erster Codabschnitt) ... ich vermute schmerzlich dass es mit Formularelementen nur mit createelement funktionieren wird.
 
Natürlich funktioniert das auch im FF - du bindest da wahrscheinlich was falsch ein.
Hast du mal etwas mehr Code oder einen Testlink(besser)?
 
Testlink wird schwer, weil in'nem Intranet aber ich versuche mal die relevanten Codeabschnitte rauszuschreiben:

Wie ganz am Anfang beschrieben besteht das Ganze aus einer Seite, in der sich ein IFRAME befindet ... aus dem (IFRAME) heraus wir im PARENTFRAME das DIV in einem WRAPPER-DIV erzeugt. Das FORM befindet sich im PARENTFRAME.

Der Aufruf aus dem IFRAME und dessen FUNKTION:

Code:
onClick="p11_addcontactrow(<? echo $array[id_kunde];?>,'<? echo fixwritedata($js_kommentartext);?>')"

function p11_addcontactrow(kontakt_id,k_text) 
{  	
	 window.parent.document.getElementById("linking_data_div").innerHTML =  window.parent.document.getElementById("linking_data_div").innerHTML + '<div class="beschriftung" style="width:300px;" id="kontaktdiv_'+kontakt_id+'"><div style="width:11px; height:11px; float:left;" class="hgbutt-delete" onclick="p11_delcontactrow('+kontakt_id+')"><input name="kontakt_id[]" type="hidden" id="kontakt_id[]" value="'+kontakt_id+'">-<\/div><div style="width:280px; float:left;" class="beschriftung"> KONTAKT: '+k_text+kontakt_id+'<\/div><\/div>';
}

Der Wrapper, der das DIV aufnimmt im übergeordneten Frame (nur ein ganz kleiner Ausschnitt, von dem ich denke, dass er relevant ist):

Code:
<form action="termin_data.php" method="post" name="terminform" id="terminform">

<div id="linking_data_div" style="width:300px; height:100px; overflow-y:auto; overflow-x:hidden;">

</div>

</form>

... und so sieht ein Beisspiel aus, dass die Daten nach dem Submit ordnungsgemäß in alle Browsern weitergibt.

Code:
<div class="beschriftung" style="width:300px;" id="kontaktdiv_4463">
      <div style="width:11px; height:11px; float:left;" class="hgbutt-delete" onclick="p11_delcontactrow('4463')"><input name="kontakt_id[]" type="hidden" id="kontakt_id[]" value="4463">-</div>
      <div style="width:280px; float:left;" class="beschriftung"> KONTAKT: /Glagla</div>
      </div>

in termin_data.php fange ich kontakt_id mit count($kontakt_id) ab ... und der ist bei der dynamischen Variante im FF und Chrome immer 0.

Ich hoffe, das bring etwas mehr Licht in Dunkel ...
 
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</title>
<script type="text/javascript" src="./Plugin/nuetzlich.js"></script>
<script type="text/javascript">
document.onclick = function(){
	document.getElementById("insert").innerHTML = '<div class="beschriftung" style="width:300px;" id="kontaktdiv_4463">     <div style="width:11px; height:11px; float:left;" class="hgbutt-delete" onclick="p11_delcontactrow(\'4463\')"><input name="kontakt_id[]" type="hidden" id="kontakt_id[]" value="4463">-<\/div>      <div style="width:280px; float:left;" class="beschriftung"> KONTAKT: /Glagla<\/div>      <\/div>';
}
</script>
</head>
<body>
<form method="GET" action="">
	<div id="insert">
	</div>
	<input type="submit">
</form>
</body>
</html>
funktioniert wunderbar im FF
 
keine Ahnung, woran das liegen kann. Habe es jetzt mit:

Code:
if (document.createElement) {
	input = document.createElement('input');
	input.type = 'hidden';
	input.name = 'kontakt_id[]';
	input.id = 'hiddenkontaktid_'+kontakt_id;
	input.value = input.defaultValue = kontakt_id;
	window.parent.document.terminform.appendChild(input);
	}

gelöst und da haut es hin.

Vielen Dank für die Bemühungen!!!
 
Das wundert mich jetzt - das sollte eigentlich nicht im IE funktionieren: document.createElement('input'); -> window.parent.document.createElement('input');
 
Zurück
Oben