innerHTML für Firefox ersetzen ?
magicslider
- javascript
hi,
ich habe folgende html seite, welche je nach auswahl,
text von einer der zwei php datein als innerHTML darstellt wird.
innerHTML kann ich in den php dateien, wohl einfach mit appendChild
ersetzen, nur wie mache ich das mit createTextNode in meiner html datei ?
code: test.html
<html>
<head>
<script type="text/javascript">
function adressen()
{
var detail_id = document.SelectMenu.kostentraeger.selectedIndex;
var detail = document.SelectMenu.kostentraeger.options[detail_id].value;
if (document.SelectMenu.liefer[0].checked == true )
{
var box_liefer = 'true';
}
else
{
var box_liefer = 'false';
}
if (document.SelectMenu.liefer[1].checked == true )
{
var box_liefer_andere = 'true';
}
else
{
var box_liefer_andere = 'false';
}
if (document.SelectMenu.rechnungs[0].checked == true )
{
var box_rg = 'true';
}
else
{
var box_rg = 'false';
}
if (document.SelectMenu.rechnungs[1].checked == true )
{
var box_rg_andere = 'true';
}
else
{
var box_rg_andere = 'false';
}
document.getElementById("adresse1").src="kr_detail_1.php?liefer="+box_liefer+"&rechnungs="+box_rg;
document.getElementById("adresse2").src="kr_detail_2.php?kr="+detail+"&andere_liefer="+box_liefer_andere+"&andere_rechnungs="+box_rg_andere;
}
</script>
</head>
<body bgcolor="#000000" text="#dedfdf" marginheight="0" marginwidth="0" topmargin="0" leftmargin="0" rightmargin="0">
<table border="0" width="100%" cellpadding=0 cellspacing=0 align="center">
<form action="csc_order_exec.php" method="POST" enctype="multipart/form-data" NAME="SelectMenu" >
<tr>
<td align='right' valign='middle' colspan='4'><font size='2' id='menutext'><nobr><b>Kostentraeger :</b></font></td>
<td align='left' valign='middle' colspan='2'>
<SELECT NAME='kostentraeger'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
</SELECT></td>
<td> </td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'><input type='radio' name='liefer' value='liefer'></td>
<td align='left' valign='middle' colspan='2'><font face='arial' size='2'> Lieferadresse</font></td>
<td> </td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'><input type='radio' name='rechnungs' value='rechnungs'></td>
<td align='left' valign='middle' colspan='2'><font face='arial' size='2'> Rechnungsanschrift</font></td>
<td> </td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'> </td>
<td colspan="2"><div id="zieladresse1"></div><script type="text/javascript" id="adresse1"></script></td>
<td> </td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'><input type='radio' name='liefer' value='andere_liefer'></td>
<td align='left' valign='middle' colspan='2'><font face='arial' size='2'> Abweichende Lieferadresse</font></td>
<td> </td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'><input type='radio' name='rechnungs' value='andere_rechnungs'></td>
<td align='left' valign='middle' colspan='2'><font face='arial' size='2'> Abweichende Rechnungsanschrift</font></td>
<td align="right"><input class='button' type='button' style='width:120px' value='anzeigen' onclick='adressen()'></td>
</tr>
<tr>
<td align='right' valign='middle' colspan='4'> </td>
<td colspan="2"><div id="zieladresse2"></div><script type="text/javascript" id="adresse2"></script></td>
<td> </td>
</tr>
</form>
</table>
</body>
</html>
code: datei kr_detail_1.php
<?
$box_liefer = $_GET["liefer"];
$box_rg = $_GET["rechnungs"];
if ($box_rg == 'true' && $box_liefer == 'true')
{
echo ("document.getElementById('zieladresse1').innerHTML='");
echo ("Rechnungs-und Lieferanschrift,0,$box_liefer,$box_rg");
echo ("';\n");
}
elseif ($box_rg == 'true' && $box_liefer != 'true')
{
echo ("document.getElementById('zieladresse1').innerHTML='");
echo ("Rechnungsanschrift,0,$box_liefer,$box_rg");
echo ("';\n");
}
elseif ($box_rg != 'true' && $box_liefer == 'true')
{
echo ("document.getElementById('zieladresse1').innerHTML='");
echo ("Lieferanschrift,0,$box_liefer,$box_rg");
echo ("';\n");
}
else
{
echo ("document.getElementById('zieladresse1').innerHTML='");
echo ("';\n");
}
?>
code: datei kr_detail_2.php
<?
$kr_nummer = $_GET["kr"];
$box_liefer_andere = $_GET["andere_liefer"];
$box_rg_andere = $_GET["andere_rechnungs"];
if ($box_rg_andere == 'true' && $box_liefer_andere == 'true')
{
echo ("document.getElementById('zieladresse2').innerHTML='");
echo ("Andere Rechnungs-und Lieferanschrift,$kr_nummer,$box_liefer_andere,$box_rg_andere");
echo ("';\n");
}
elseif ($box_rg_andere == 'true' && $box_liefer_andere != 'true')
{
echo ("document.getElementById('zieladresse2').innerHTML='");
echo ("Andere Rechnungsanschrift,$kr_nummer,$box_liefer_andere,$box_rg_andere");
echo ("';\n");
}
elseif ($box_rg_andere != 'true' && $box_liefer_andere == 'true')
{
echo ("document.getElementById('zieladresse2').innerHTML='");
echo ("Andere Lieferanschrift,$kr_nummer,$box_liefer_andere,$box_rg_andere");
echo ("';\n");
}
else
{
echo ("document.getElementById('zieladresse2').innerHTML='");
echo ("';\n");
}
?>
thx magicslider
Hallo,
soweit mir bekannt ist, interpretiert der Firefox auch .innerHTML. Auch wenn Du löblicher Weise DOM-gerecht vorgehen willst, so verstehe ich Dein Problem nicht, denn, ob Du nun mit innerHTML arbeitest, oder mit createElement(), createTextNode() und appendChild() oder mit appandData(), bzw. nodeValue oder data arbeitest, heist immer nur, daß Du diese mit PHP ausgibst. Wo genau, bei diesen vielen Möglichkeiten und auch Beispielen liegt also Dein Problem?
Gruß aus Berlin!
eddi
hi eddi,
das problem ist, das der firefox zwar die funktion aufruft,
jedoch nur einmal die src datei, egal was sich an den parametern
ändert. siehe: document.getElementById("adresse1").src=....
dom und insbesondere createTextNode() kann ich komplett vergessen, nur 1 instanz möglich bei einem aufruf !
ganz primitiv geht es leider auch nicht:
document.getElementById('ziel').innerHTML ='<?php include("test.php"); ?>';
in der test.php ist nur eine echo "hhhhhhhhhhhhhh";
die konsole bringt mir aber diesen fehler ?!
unterminated string literal
document.getElementById('ziel').innerHTML ='hhhhhhhhhhhhhh
-------------------------------------------^
thx magicslider
Re:
das problem ist, das der firefox zwar die funktion aufruft,
jedoch nur einmal die src datei, egal was sich an den parametern
ändert. siehe: document.getElementById("adresse1").src=....
while(document.getElementsByTagName("head")[0].getElementsByTagName("script").length!=1) document.getElementsByTagName("head")[0].removeChild(document.getElementsByTagName("head")[0].getElementsByTagName("script")[1]);
t=document.createElement("script");
t.setAttribute("src","http://eddi.to-grip.de/v/01.php");
t.setAttribute("type","text/javascript");
document.getElementsByTagName("head")[0].appendChild(t);
dom und insbesondere createTextNode() kann ich komplett vergessen, nur 1 instanz möglich bei einem aufruf !
Dem ist nicht so ;)
z=new Array()
z["Privates"]=0
z["Chat"]=0
z["Ich"]=new Array()
z["Ich"]["eddi"]=0
function grund()
{
table=document.createElement("table");
table.setAttribute("cellpadding",0);
table.setAttribute("cellspacing",0);
table.setAttribute("id","neu");
for(m in z)
{
td=document.createElement("td");
t=document.createTextNode(m);
td.onmouseover=function(){list(this)}
td.appendChild(t)
tr=document.createElement("tr");
tr.appendChild(td)
td=document.createElement("td");
tr.appendChild(td)
tr.onmouseover=function(){color(this)}
table.appendChild(tr)
}
document.getElementById("ein").appendChild(table);
s=document.getElementById("neu").style;
s.position="fixed"
s.zIndex=0;
s.bottom=document.getElementById("task").offsetHeight+"px";
document.getElementById("neu").removeAttribute("id");
}
Damit baue ich selbst Tabellen unbekannter Zeilenanzahl in einer for()-Schleife zusammen. Also von nur einmal createTextNode() kann da keine Rede sein!
Gruß aus Berlin!
eddi
Hi,
table.appendChild(tr)
Und das funktioniert in allen Browsern?
IE braucht doch normalerweise noch thead oder tfoot oder tbody, da in HTML die tr ja keine direkten Kinder von table sein können …
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Hi,
table.appendChild(tr)
>
> Und das funktioniert in allen Browsern?
> IE braucht doch normalerweise noch thead oder tfoot oder tbody, da in HTML die tr ja keine direkten Kinder von table sein können …
Gute Frage... Ich weiß es gar nicht mehr, denn es ist schon ein weilchen her, das ich diesen Code verbrochen habe. Was ich damals erreichen wollte, habe ich auch nicht hinbekommen ;(
Schau mal bitte unter <http://eddi.to-grip.de/v/> ob das der IE mag. (Unten auf "Menü" einen Click machen)
Gruß aus Berlin!
eddi
Hi,
table.appendChild(tr)
> > Und das funktioniert in allen Browsern?
> > IE braucht doch normalerweise noch thead oder tfoot oder tbody, da in HTML die tr ja keine direkten Kinder von table sein können …
> Gute Frage... Ich weiß es gar nicht mehr, denn es ist schon ein weilchen her, das ich diesen Code verbrochen habe. Was ich damals erreichen wollte, habe ich auch nicht hinbekommen ;(
> Schau mal bitte unter <http://eddi.to-grip.de/v/> ob das der IE mag. (Unten auf "Menü" einen Click machen)
Nö, mag er nicht - erst wenn ich tbody in die Struktur reinpfriemle. QEE - quod erat expectandum.
Daß der IE im Gegensatz zum roten Panda das Ding oben darstellt, ist noch ein weiterer Fehler, den ich jetzt aber nicht untersuchen will.
cu,
Andreas
--
[Warum nennt sich Andreas hier MudGuard?](http://www.Mud-Guard.de/)
[Schreinerei Waechter](http://www.schreinerei-waechter.de/)
Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
Nabend,
Nö, mag er nicht - erst wenn ich tbody in die Struktur reinpfriemle. QEE - quod erat expectandum.
Daß der IE im Gegensatz zum roten Panda das Ding oben darstellt, ist noch ein weiterer Fehler, den ich jetzt aber nicht untersuchen will.
*lach*
Gut jedenfalls Danke! Wenn ich mal wieder Zeit habe und mich mit dem Script auseinandersetze, werde ich mit ein IE irgendwoher schorren, um das dann korrekter zu machen ;)
Gruß aus Berlin!
eddi
Hi,
Gut jedenfalls Danke! Wenn ich mal wieder Zeit habe und mich mit dem Script auseinandersetze, werde ich mit ein IE irgendwoher schorren, um das dann korrekter zu machen ;)
Also mit Listen statt Tabellen? ;-)
cu,
Andreas